type BeforeLast = ST extends '' ? '' : S extends `${infer P1}${ST}${infer P2}` ? P1 extends `${string}${ST}${string}` ? BeforeLast : P2 extends `${string}${ST}${string}` ? `${P1}${ST}${BeforeLast}` : P1 : S extends `${string}${ST}` ? '' : S; /** * Get the string before the last instance of the found token. * * @param {string} str * @param {string} token - The string to search for. * * @return {string} */ export default function beforeLast(str: T, token: ST): BeforeLast { if (token === '') return '' as BeforeLast; return (str.includes(token) ? str.substring(0, str.lastIndexOf(token)) : '') as BeforeLast; }