Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
26 lines
947 B
Text
26 lines
947 B
Text
/**
|
|
* This simulates what something like `tsx` (https://github.com/privatenumber/tsx)
|
|
* will do: it will try to resolve a URL with a `.js` extension to a `.ts` extension.
|
|
*
|
|
* Combined with the test case in the adjacent `multiple-loaders.test.mjs` file,
|
|
* this forces `import-in-the-middle` into what used to be a failure state: where
|
|
* `context.parentURL` is a `node:*` specifier and the `specifier` refers to a file
|
|
* that does not exist.
|
|
*
|
|
* See https://github.com/nodejs/node/issues/52987 for more details.
|
|
*/
|
|
export async function resolve (specifier, context, defaultResolve) {
|
|
if (!specifier.endsWith('.js') && !specifier.endsWith('.mjs')) {
|
|
return await defaultResolve(specifier, context)
|
|
}
|
|
|
|
try {
|
|
return await defaultResolve(specifier.replace(/\.m?js/, '.ts'), context)
|
|
} catch (err) {
|
|
if (err.code !== 'ERR_MODULE_NOT_FOUND') {
|
|
throw err
|
|
}
|
|
|
|
return await defaultResolve(specifier, context)
|
|
}
|
|
}
|