// originally lifted from https://nodejs.org/api/esm.html import path from 'path'; import process from 'process'; const baseURL = new URL('file://'); const binaryen_root = path.dirname(path.dirname(process.cwd())); baseURL.pathname = `${binaryen_root}/`; const specialTestSuiteModules = { 'spectest': { url: new URL('scripts/test/spectest.js', baseURL).href, format: 'module' }, 'env': { url: new URL('scripts/test/env.js', baseURL).href, format: 'module' }, 'mod.ule': { url: new URL('scripts/test/mod.ule.js', baseURL).href, format: 'module' } }; export async function resolve(specifier, context, defaultResolve) { const specialModule = specialTestSuiteModules[specifier]; if (specialModule) { // This is needed for newer node versions. specialModule.shortCircuit = true; return specialModule; } return defaultResolve(specifier, context, defaultResolve); } export async function getFormat(url, context, defaultGetFormat) { const specifiers = Object.keys(specialTestSuiteModules); for (let i = 0, k = specifiers.length; i < k; ++i) { const specialModule = specialTestSuiteModules[specifiers[i]]; if (specialModule.url == url) { return specialModule; } } return defaultGetFormat(url, context, defaultGetFormat); }