diff options
author | Daniel Wirtz <dcode@dcode.io> | 2020-02-13 01:59:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-12 16:59:52 -0800 |
commit | 321f61c7c3975e902b6f1d2a606b6595aaf701c9 (patch) | |
tree | aa73bcaa6c26543ff78241113660d380d1a48b72 /scripts/test/node-esm-loader.mjs | |
parent | 4dceacb6ff662e382f1385ec038b9fdd062c0ed0 (diff) | |
download | binaryen-321f61c7c3975e902b6f1d2a606b6595aaf701c9.tar.gz binaryen-321f61c7c3975e902b6f1d2a606b6595aaf701c9.tar.bz2 binaryen-321f61c7c3975e902b6f1d2a606b6595aaf701c9.zip |
Update node-esm-loader to work with latest node LTS (#2657)
An attempt to fix the node-esm-loader related [issues](https://travis-ci.org/WebAssembly/binaryen/jobs/649056649#L22931) seen on CI currently, apparently due to CI automatically picking up a newer node LTS (12.16.0 released 2020/02/11) where the API changed.
Diffstat (limited to 'scripts/test/node-esm-loader.mjs')
-rw-r--r-- | scripts/test/node-esm-loader.mjs | 51 |
1 files changed, 29 insertions, 22 deletions
diff --git a/scripts/test/node-esm-loader.mjs b/scripts/test/node-esm-loader.mjs index 34649fd74..8a3b67d1c 100644 --- a/scripts/test/node-esm-loader.mjs +++ b/scripts/test/node-esm-loader.mjs @@ -2,34 +2,41 @@ import path from 'path'; import process from 'process'; -import Module from 'module'; - -const builtins = Module.builtinModules; const baseURL = new URL('file://'); const binaryen_root = path.dirname(path.dirname(process.cwd())); baseURL.pathname = `${binaryen_root}/`; - -export function resolve(specifier, parentModuleURL = baseURL, defaultResolve) { - if (builtins.includes(specifier)) { - return { - url: specifier, - format: 'builtin' - }; +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' } - // Resolve special modules used in our test suite. - if (specifier == 'spectest' || specifier == 'env' || specifier == 'mod.ule') { - const resolved = new URL('./scripts/test/' + specifier + '.js', baseURL); - return { - url: resolved.href, - format: 'module' - }; +}; + +export async function resolve(specifier, context, defaultResolve) { + const specialModule = specialTestSuiteModules[specifier]; + if (specialModule) { + return specialModule; } + return defaultResolve(specifier, context, defaultResolve); +} - const resolved = new URL(specifier, parentModuleURL); - return { - url: resolved.href, - format: 'module' - }; +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); } |