| // originally lifted from https://nodejs.org/api/esm.html |
| |
| import path from 'path'; |
| import process from 'process'; |
| import Module from 'module'; |
| |
| const builtins = Module.builtinModules; |
| |
| const baseURL = new URL('file://'); |
| baseURL.pathname = `${process.cwd()}/`; |
| |
| export function resolve(specifier, parentModuleURL = baseURL, defaultResolve) { |
| if (builtins.includes(specifier)) { |
| return { |
| url: specifier, |
| format: 'builtin' |
| }; |
| } |
| // Resolve the 'spectest' and 'env' modules to our custom implementations of |
| // various builtins. |
| if (specifier == 'spectest' || specifier == 'env') { |
| const resolved = new URL('./scripts/test/' + specifier + '.js', parentModuleURL); |
| return { |
| url: resolved.href, |
| format: 'esm' |
| }; |
| } |
| |
| const resolved = new URL(specifier, parentModuleURL); |
| return { |
| url: resolved.href, |
| format: 'esm' |
| }; |
| } |