From d3dd1ce1d260e9663f130034b6e0052ac2e0637b Mon Sep 17 00:00:00 2001 From: James Talmage Date: Sat, 23 Dec 2017 16:46:55 -0500 Subject: [PATCH 1/5] support @std/esm --- lib/test-worker.js | 8 +++++++- package-lock.json | 6 ++++++ package.json | 1 + test/fixture/std-esm/.esmrc | 4 ++++ test/fixture/std-esm/index.js | 1 + test/fixture/std-esm/test.js | 6 ++++++ test/fork.js | 11 +++++++++++ 7 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 test/fixture/std-esm/.esmrc create mode 100644 test/fixture/std-esm/index.js create mode 100644 test/fixture/std-esm/test.js diff --git a/lib/test-worker.js b/lib/test-worker.js index 84fba364e..212aa00cf 100644 --- a/lib/test-worker.js +++ b/lib/test-worker.js @@ -27,7 +27,13 @@ globals.options = opts; const serializeError = require('./serialize-error'); -(opts.require || []).forEach(x => require(x)); +(opts.require || []).forEach(x => { + if (/.*std\/esm\/index\.js$/.test(x)) { + require = require(x)(module); // eslint-disable-line no-global-assign + } else { + require(x); + } +}); adapter.installSourceMapSupport(); adapter.installPrecompilerHook(); diff --git a/package-lock.json b/package-lock.json index 8430164b4..99e8a15ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -84,6 +84,12 @@ "yargs": "8.0.2" } }, + "@std/esm": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@std/esm/-/esm-0.18.0.tgz", + "integrity": "sha512-oeHSSVp/WxC08ngpKgyYR4LcI0+EBwZiJcB58jvIqyJnOGxudSkxTgAQKsVfpNsMXfOoILgu9PWhuzIZ8GQEjw==", + "dev": true + }, "@ladjs/time-require": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@ladjs/time-require/-/time-require-0.1.4.tgz", diff --git a/package.json b/package.json index 76e5aa31e..c4cb62f31 100644 --- a/package.json +++ b/package.json @@ -146,6 +146,7 @@ "update-notifier": "^2.3.0" }, "devDependencies": { + "@std/esm": "^0.18.0", "cli-table2": "^0.2.0", "codecov": "^3.0.0", "del": "^3.0.0", diff --git a/test/fixture/std-esm/.esmrc b/test/fixture/std-esm/.esmrc new file mode 100644 index 000000000..1d7d51848 --- /dev/null +++ b/test/fixture/std-esm/.esmrc @@ -0,0 +1,4 @@ +{ + "cjs": true, + "esm": "js" +} diff --git a/test/fixture/std-esm/index.js b/test/fixture/std-esm/index.js new file mode 100644 index 000000000..d02ba545b --- /dev/null +++ b/test/fixture/std-esm/index.js @@ -0,0 +1 @@ +export default 'foo'; diff --git a/test/fixture/std-esm/test.js b/test/fixture/std-esm/test.js new file mode 100644 index 000000000..4213c80a0 --- /dev/null +++ b/test/fixture/std-esm/test.js @@ -0,0 +1,6 @@ +import test from '../../../'; +import m from '.'; + +test('works', t => { + t.is(m, 'foo'); +}); diff --git a/test/fork.js b/test/fork.js index c31e9ebf8..86cf966b7 100644 --- a/test/fork.js +++ b/test/fork.js @@ -135,6 +135,17 @@ test('babelrc is ignored', t => { }); }); +test('@std/esm support', t => { + return fork(fixture('std-esm/test.js'), { + require: [require.resolve('@std/esm')] + }) + .run({}) + .then(info => { + t.is(info.stats.passCount, 1); + t.end(); + }); +}); + // TODO: Skipped until we can do this properly in #1455 test('color support is initialized correctly', t => { t.plan(1); From 08f19858b42d7821c91b0303655c5c4ba8c8aea3 Mon Sep 17 00:00:00 2001 From: James Talmage Date: Sat, 23 Dec 2017 17:00:44 -0500 Subject: [PATCH 2/5] fix path test for windows --- lib/test-worker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/test-worker.js b/lib/test-worker.js index 212aa00cf..e1b9d98d9 100644 --- a/lib/test-worker.js +++ b/lib/test-worker.js @@ -28,7 +28,7 @@ globals.options = opts; const serializeError = require('./serialize-error'); (opts.require || []).forEach(x => { - if (/.*std\/esm\/index\.js$/.test(x)) { + if (/.*std[\/\\]esm[\/\\]index\.js$/.test(x)) { require = require(x)(module); // eslint-disable-line no-global-assign } else { require(x); From 2485fbb1bc3c71a4e65e944c7edb8ed041a0559d Mon Sep 17 00:00:00 2001 From: James Talmage Date: Sat, 23 Dec 2017 17:07:02 -0500 Subject: [PATCH 3/5] fix linter error --- lib/test-worker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/test-worker.js b/lib/test-worker.js index e1b9d98d9..24b8cf1da 100644 --- a/lib/test-worker.js +++ b/lib/test-worker.js @@ -28,7 +28,7 @@ globals.options = opts; const serializeError = require('./serialize-error'); (opts.require || []).forEach(x => { - if (/.*std[\/\\]esm[\/\\]index\.js$/.test(x)) { + if (/.*std[/\\]esm[/\\]index\.js$/.test(x)) { require = require(x)(module); // eslint-disable-line no-global-assign } else { require(x); From ab8296a8bc26531a16dacf6461b673e002130a67 Mon Sep 17 00:00:00 2001 From: James Talmage Date: Mon, 8 Jan 2018 14:09:24 -0500 Subject: [PATCH 4/5] Stricter regex. Use shorthand .esmrc file in fixture. --- lib/test-worker.js | 2 +- package-lock.json | 6 +++--- package.json | 2 +- test/fixture/std-esm/.esmrc | 3 +-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/test-worker.js b/lib/test-worker.js index 24b8cf1da..952d55bb9 100644 --- a/lib/test-worker.js +++ b/lib/test-worker.js @@ -28,7 +28,7 @@ globals.options = opts; const serializeError = require('./serialize-error'); (opts.require || []).forEach(x => { - if (/.*std[/\\]esm[/\\]index\.js$/.test(x)) { + if (/[/\\]@std[/\\]esm[/\\]index\.js$/.test(x)) { require = require(x)(module); // eslint-disable-line no-global-assign } else { require(x); diff --git a/package-lock.json b/package-lock.json index 99e8a15ba..0c221c896 100644 --- a/package-lock.json +++ b/package-lock.json @@ -85,9 +85,9 @@ } }, "@std/esm": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@std/esm/-/esm-0.18.0.tgz", - "integrity": "sha512-oeHSSVp/WxC08ngpKgyYR4LcI0+EBwZiJcB58jvIqyJnOGxudSkxTgAQKsVfpNsMXfOoILgu9PWhuzIZ8GQEjw==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@std/esm/-/esm-0.19.1.tgz", + "integrity": "sha512-4Ph4hdaDIkt5sChK565oU16Wa9jcBwLbiNAMEB6fyQZlBw5uz3UpxTo/ZohjeILgJfNtb/l1HzVql1ys5s74Ww==", "dev": true }, "@ladjs/time-require": { diff --git a/package.json b/package.json index c4cb62f31..8ca028aeb 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "update-notifier": "^2.3.0" }, "devDependencies": { - "@std/esm": "^0.18.0", + "@std/esm": "^0.19.1", "cli-table2": "^0.2.0", "codecov": "^3.0.0", "del": "^3.0.0", diff --git a/test/fixture/std-esm/.esmrc b/test/fixture/std-esm/.esmrc index 1d7d51848..807ee2da6 100644 --- a/test/fixture/std-esm/.esmrc +++ b/test/fixture/std-esm/.esmrc @@ -1,4 +1,3 @@ { - "cjs": true, - "esm": "js" + "esm": "cjs" } From 09d7400ad74dc43e809a808592d2a524c913ce5e Mon Sep 17 00:00:00 2001 From: James Talmage Date: Mon, 8 Jan 2018 14:24:36 -0500 Subject: [PATCH 5/5] update package-lock.json --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0c221c896..7466d6eb5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -84,12 +84,6 @@ "yargs": "8.0.2" } }, - "@std/esm": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@std/esm/-/esm-0.19.1.tgz", - "integrity": "sha512-4Ph4hdaDIkt5sChK565oU16Wa9jcBwLbiNAMEB6fyQZlBw5uz3UpxTo/ZohjeILgJfNtb/l1HzVql1ys5s74Ww==", - "dev": true - }, "@ladjs/time-require": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@ladjs/time-require/-/time-require-0.1.4.tgz", @@ -136,6 +130,12 @@ } } }, + "@std/esm": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@std/esm/-/esm-0.19.1.tgz", + "integrity": "sha512-4Ph4hdaDIkt5sChK565oU16Wa9jcBwLbiNAMEB6fyQZlBw5uz3UpxTo/ZohjeILgJfNtb/l1HzVql1ys5s74Ww==", + "dev": true + }, "abbrev": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",