From 305605d8d997d7e1fc4f8094af4e1e687286b970 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 9 Oct 2020 16:49:10 +0200 Subject: [PATCH] feat(commonjs): Expose cjs detection and support offline caching BREAKING CHANGES: Raises minimal required Rollup version to 2.30.0 --- packages/commonjs/README.md | 20 + packages/commonjs/package.json | 4 +- packages/commonjs/src/index.js | 27 +- packages/commonjs/src/is-cjs.js | 7 +- packages/commonjs/src/transform.js | 10 +- .../expose-file-type-detection/_config.js | 33 ++ .../expose-file-type-detection/main.js | 3 + .../expose-file-type-detection/other.js | 1 + .../test/fixtures/samples/caching/dep.js | 1 + .../test/fixtures/samples/caching/main.js | 3 + .../fixtures/samples/caching/rollupWorker.js | 20 + .../commonjs/test/snapshots/function.js.md | 510 ++++++++++++++---- .../commonjs/test/snapshots/function.js.snap | Bin 11070 -> 12714 bytes packages/commonjs/test/test.js | 30 +- pnpm-lock.yaml | 57 +- 15 files changed, 605 insertions(+), 121 deletions(-) create mode 100644 packages/commonjs/test/fixtures/function/expose-file-type-detection/_config.js create mode 100644 packages/commonjs/test/fixtures/function/expose-file-type-detection/main.js create mode 100644 packages/commonjs/test/fixtures/function/expose-file-type-detection/other.js create mode 100644 packages/commonjs/test/fixtures/samples/caching/dep.js create mode 100644 packages/commonjs/test/fixtures/samples/caching/main.js create mode 100644 packages/commonjs/test/fixtures/samples/caching/rollupWorker.js diff --git a/packages/commonjs/README.md b/packages/commonjs/README.md index 37f63693e..ce6c9ed58 100644 --- a/packages/commonjs/README.md +++ b/packages/commonjs/README.md @@ -311,6 +311,26 @@ ES modules are _always_ parsed in strict mode. That means that certain non-stric Luckily, there is absolutely no good reason _not_ to use strict mode for everything — so the solution to this problem is to lobby the authors of those modules to update them. +## Inter-plugin-communication + +This plugin exposes the result of its CommonJS file type detection for other plugins to use. You can access it via `this.getModuleInfo` or the `moduleParsed` hook: + +```js +function cjsDetectionPlugin() { + return { + name: 'cjs-detection', + moduleParsed({ + id, + meta: { + commonjs: { isCommonJS }, + }, + }) { + console.log(`File ${id} is CommonJS: ${isCommonJS}`); + }, + }; +} +``` + ## Meta [CONTRIBUTING](/.github/CONTRIBUTING.md) diff --git a/packages/commonjs/package.json b/packages/commonjs/package.json index e1b968514..c6c2a0495 100644 --- a/packages/commonjs/package.json +++ b/packages/commonjs/package.json @@ -47,7 +47,7 @@ "require" ], "peerDependencies": { - "rollup": "^2.22.0" + "rollup": "^2.30.0" }, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -63,7 +63,7 @@ "@rollup/plugin-node-resolve": "^8.4.0", "locate-character": "^2.0.5", "require-relative": "^0.8.7", - "rollup": "^2.23.0", + "rollup": "^2.30.0", "shx": "^0.3.2", "source-map": "^0.7.3", "source-map-support": "^0.5.19", diff --git a/packages/commonjs/src/index.js b/packages/commonjs/src/index.js index b88441e76..c3f75a391 100644 --- a/packages/commonjs/src/index.js +++ b/packages/commonjs/src/index.js @@ -103,14 +103,13 @@ export default function commonjs(options = {}) { !dynamicRequireModuleSet.has(normalizePathSlashes(id)) && (!hasCjsKeywords(code, ignoreGlobal) || (isEsModule && !options.transformMixedEsModules)) ) { - setIsCjsPromise(id, false); - return null; + return { meta: { commonjs: { isCommonJS: false } } }; } // avoid wrapping in createCommonjsModule, as this is a commonjsRegister call const disableWrap = isModuleRegistrationProxy(id, dynamicRequireModuleSet); - const transformed = transformCommonjs( + return transformCommonjs( this.parse, code, id, @@ -124,9 +123,6 @@ export default function commonjs(options = {}) { commonDir, ast ); - - setIsCjsPromise(id, isEsModule ? false : Boolean(transformed)); - return transformed; } return { @@ -201,20 +197,25 @@ export default function commonjs(options = {}) { !id.startsWith(DYNAMIC_JSON_PREFIX) && (!filter(id) || !extensions.includes(extName)) ) { - setIsCjsPromise(id, null); return null; } - let transformed; try { - transformed = transformAndCheckExports.call(this, code, id); + return transformAndCheckExports.call(this, code, id); } catch (err) { - transformed = null; - setIsCjsPromise(id, false); - this.error(err, err.loc); + return this.error(err, err.loc); } + }, - return transformed; + moduleParsed({ id, meta: { commonjs } }) { + if (commonjs) { + const isCjs = commonjs.isCommonJS; + if (isCjs != null) { + setIsCjsPromise(id, isCjs); + return; + } + } + setIsCjsPromise(id, null); } }; } diff --git a/packages/commonjs/src/is-cjs.js b/packages/commonjs/src/is-cjs.js index 695441e63..5f4496c3a 100644 --- a/packages/commonjs/src/is-cjs.js +++ b/packages/commonjs/src/is-cjs.js @@ -1,4 +1,3 @@ -/* eslint-disable no-undefined */ const isCjsPromises = new Map(); export function getIsCjsPromise(id) { @@ -8,7 +7,7 @@ export function getIsCjsPromise(id) { const promise = new Promise((resolve) => { isCjsPromise = { resolve, - promise: undefined + promise: null }; isCjsPromises.set(id, isCjsPromise); }); @@ -22,9 +21,9 @@ export function setIsCjsPromise(id, resolution) { if (isCjsPromise) { if (isCjsPromise.resolve) { isCjsPromise.resolve(resolution); - isCjsPromise.resolve = undefined; + isCjsPromise.resolve = null; } } else { - isCjsPromises.set(id, { promise: Promise.resolve(resolution), resolve: undefined }); + isCjsPromises.set(id, { promise: Promise.resolve(resolution), resolve: null }); } } diff --git a/packages/commonjs/src/transform.js b/packages/commonjs/src/transform.js index f1f751ea1..299db1fd3 100644 --- a/packages/commonjs/src/transform.js +++ b/packages/commonjs/src/transform.js @@ -560,8 +560,7 @@ export function transformCommonjs( !usesCommonjsHelpers && (ignoreGlobal || !uses.global) ) { - // not a CommonJS module - return null; + return { meta: { commonjs: { isCommonJS: false } } }; } const importBlock = `${(usesCommonjsHelpers @@ -698,5 +697,10 @@ export function transformCommonjs( code = magicString.toString(); const map = sourceMap ? magicString.generateMap() : null; - return { code, map, syntheticNamedExports: isEsModule ? false : '__moduleExports' }; + return { + code, + map, + syntheticNamedExports: isEsModule ? false : '__moduleExports', + meta: { commonjs: { isCommonJS: !isEsModule } } + }; } diff --git a/packages/commonjs/test/fixtures/function/expose-file-type-detection/_config.js b/packages/commonjs/test/fixtures/function/expose-file-type-detection/_config.js new file mode 100644 index 000000000..037256b61 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/expose-file-type-detection/_config.js @@ -0,0 +1,33 @@ +const path = require('path'); + +const ID_MAIN = path.join(__dirname, 'main.js'); +const ID_OTHER = path.join(__dirname, 'other.js'); + +module.exports = { + description: 'exposes cjs file type detection to other plugins', + options: { + input: [ID_MAIN, ID_OTHER], + plugins: [ + { + moduleParsed({ + id, + meta: { + commonjs: { isCommonJS } + } + }) { + if (id === ID_MAIN) { + if (isCommonJS !== false) { + throw new Error( + `Main file wrongly detected: isCommonJS === ${JSON.stringify(isCommonJS)}` + ); + } + } else if (isCommonJS !== true) { + throw new Error( + `Other file wrongly detected: isCommonJS === ${JSON.stringify(isCommonJS)}` + ); + } + } + } + ] + } +}; diff --git a/packages/commonjs/test/fixtures/function/expose-file-type-detection/main.js b/packages/commonjs/test/fixtures/function/expose-file-type-detection/main.js new file mode 100644 index 000000000..bc136e278 --- /dev/null +++ b/packages/commonjs/test/fixtures/function/expose-file-type-detection/main.js @@ -0,0 +1,3 @@ +import foo from './other.js'; + +t.is(foo, 'foo'); diff --git a/packages/commonjs/test/fixtures/function/expose-file-type-detection/other.js b/packages/commonjs/test/fixtures/function/expose-file-type-detection/other.js new file mode 100644 index 000000000..2651774ae --- /dev/null +++ b/packages/commonjs/test/fixtures/function/expose-file-type-detection/other.js @@ -0,0 +1 @@ +module.exports = 'foo'; diff --git a/packages/commonjs/test/fixtures/samples/caching/dep.js b/packages/commonjs/test/fixtures/samples/caching/dep.js new file mode 100644 index 000000000..88a7c1a14 --- /dev/null +++ b/packages/commonjs/test/fixtures/samples/caching/dep.js @@ -0,0 +1 @@ +exports.dep = 42; diff --git a/packages/commonjs/test/fixtures/samples/caching/main.js b/packages/commonjs/test/fixtures/samples/caching/main.js new file mode 100644 index 000000000..62d4e8ea2 --- /dev/null +++ b/packages/commonjs/test/fixtures/samples/caching/main.js @@ -0,0 +1,3 @@ +const dep = require('./dep'); + +console.log(dep); diff --git a/packages/commonjs/test/fixtures/samples/caching/rollupWorker.js b/packages/commonjs/test/fixtures/samples/caching/rollupWorker.js new file mode 100644 index 000000000..2f80d6d4e --- /dev/null +++ b/packages/commonjs/test/fixtures/samples/caching/rollupWorker.js @@ -0,0 +1,20 @@ +const { workerData, parentPort } = require('worker_threads'); + +const { rollup } = require('rollup'); + +const commonjs = require('../../../../dist/index'); +const { getCodeFromBundle } = require('../../../helpers/util'); + +generateCode(workerData); + +async function generateCode(cache) { + const code = await getCodeFromBundle( + await rollup({ + input: 'fixtures/samples/caching/main.js', + cache, + plugins: [commonjs()] + }) + ); + + parentPort.postMessage(code); +} diff --git a/packages/commonjs/test/snapshots/function.js.md b/packages/commonjs/test/snapshots/function.js.md index 90242f534..5ea110f93 100644 --- a/packages/commonjs/test/snapshots/function.js.md +++ b/packages/commonjs/test/snapshots/function.js.md @@ -778,9 +778,11 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ - function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }␊ + var Path = require('path');␊ ␊ - var Path = _interopDefault(require('path'));␊ + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊ + ␊ + var Path__default = /*#__PURE__*/_interopDefaultLegacy(Path);␊ ␊ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊ ␊ @@ -931,7 +933,7 @@ Generated by [AVA](https://avajs.dev). ␊ const basePath = `${process.cwd()}/fixtures/function/dynamic-require-absolute-paths`;␊ ␊ - t.is(commonjsRequire(Path.resolve(`${basePath}/submodule.js`),"/$$rollup_base$$/fixtures/function/dynamic-require-absolute-paths"), 'submodule');␊ + t.is(commonjsRequire(Path__default['default'].resolve(`${basePath}/submodule.js`),"/$$rollup_base$$/fixtures/function/dynamic-require-absolute-paths"), 'submodule');␊ ␊ var main = {␊ ␊ @@ -2986,19 +2988,25 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ - function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }␊ + var externalExports = require('external-cjs-exports');␊ + var externalModuleExports = require('external-cjs-module-exports');␊ + var externalNamed = require('external-esm-named');␊ + var externalMixed = require('external-esm-mixed');␊ + var externalDefault = require('external-esm-default');␊ ␊ - var externalExports = _interopDefault(require('external-cjs-exports'));␊ - var externalModuleExports = _interopDefault(require('external-cjs-module-exports'));␊ - var externalNamed = _interopDefault(require('external-esm-named'));␊ - var externalMixed = _interopDefault(require('external-esm-mixed'));␊ - var externalDefault = _interopDefault(require('external-esm-default'));␊ + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊ ␊ - t.deepEqual(externalExports, { foo: 'foo' }, 'external exports');␊ - t.deepEqual(externalModuleExports, 'bar', 'external module exports');␊ - t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊ - t.deepEqual(externalMixed, 'bar', 'external mixed');␊ - t.deepEqual(externalDefault, 'bar', 'external default');␊ + var externalExports__default = /*#__PURE__*/_interopDefaultLegacy(externalExports);␊ + var externalModuleExports__default = /*#__PURE__*/_interopDefaultLegacy(externalModuleExports);␊ + var externalNamed__default = /*#__PURE__*/_interopDefaultLegacy(externalNamed);␊ + var externalMixed__default = /*#__PURE__*/_interopDefaultLegacy(externalMixed);␊ + var externalDefault__default = /*#__PURE__*/_interopDefaultLegacy(externalDefault);␊ + ␊ + t.deepEqual(externalExports__default['default'], { foo: 'foo' }, 'external exports');␊ + t.deepEqual(externalModuleExports__default['default'], 'bar', 'external module exports');␊ + t.deepEqual(externalNamed__default['default'], { foo: 'foo' }, 'external named');␊ + t.deepEqual(externalMixed__default['default'], 'bar', 'external mixed');␊ + t.deepEqual(externalDefault__default['default'], 'bar', 'external default');␊ ␊ var main = {␊ ␊ @@ -3015,14 +3023,40 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ - function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }␊ - ␊ - var externalExports = _interopDefault(require('external-cjs-exports'));␊ - var externalModuleExports = _interopDefault(require('external-cjs-module-exports'));␊ - var externalNamed = _interopDefault(require('external-esm-named'));␊ - var externalMixed = _interopDefault(require('external-esm-mixed'));␊ + var externalExports = require('external-cjs-exports');␊ + var externalModuleExports = require('external-cjs-module-exports');␊ + var externalNamed = require('external-esm-named');␊ + var externalMixed = require('external-esm-mixed');␊ var externalEsmDefault = require('external-esm-default');␊ ␊ + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊ + ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var externalExports__default = /*#__PURE__*/_interopDefaultLegacy(externalExports);␊ + var externalModuleExports__default = /*#__PURE__*/_interopDefaultLegacy(externalModuleExports);␊ + var externalNamed__default = /*#__PURE__*/_interopDefaultLegacy(externalNamed);␊ + var externalMixed__default = /*#__PURE__*/_interopDefaultLegacy(externalMixed);␊ + var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespace(externalEsmDefault);␊ + ␊ function getAugmentedNamespace(n) {␊ if (n.__esModule) return n;␊ var a = Object.defineProperty({}, '__esModule', {value: true});␊ @@ -3038,12 +3072,12 @@ Generated by [AVA](https://avajs.dev). return a;␊ }␊ ␊ - var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault);␊ + var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊ ␊ - t.deepEqual(externalExports, { foo: 'foo' }, 'external exports');␊ - t.deepEqual(externalModuleExports, 'bar', 'external module exports');␊ - t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊ - t.deepEqual(externalMixed, 'bar', 'external mixed');␊ + t.deepEqual(externalExports__default['default'], { foo: 'foo' }, 'external exports');␊ + t.deepEqual(externalModuleExports__default['default'], 'bar', 'external module exports');␊ + t.deepEqual(externalNamed__default['default'], { foo: 'foo' }, 'external named');␊ + t.deepEqual(externalMixed__default['default'], 'bar', 'external mixed');␊ t.deepEqual(externalDefault, { default: 'bar' }, 'external default');␊ ␊ var main = {␊ @@ -3061,14 +3095,40 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ - function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }␊ - ␊ - var externalExports = _interopDefault(require('external-cjs-exports'));␊ - var externalModuleExports = _interopDefault(require('external-cjs-module-exports'));␊ - var externalNamed = _interopDefault(require('external-esm-named'));␊ - var externalMixed = _interopDefault(require('external-esm-mixed'));␊ + var externalExports = require('external-cjs-exports');␊ + var externalModuleExports = require('external-cjs-module-exports');␊ + var externalNamed = require('external-esm-named');␊ + var externalMixed = require('external-esm-mixed');␊ var externalEsmDefault = require('external-esm-default');␊ ␊ + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊ + ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var externalExports__default = /*#__PURE__*/_interopDefaultLegacy(externalExports);␊ + var externalModuleExports__default = /*#__PURE__*/_interopDefaultLegacy(externalModuleExports);␊ + var externalNamed__default = /*#__PURE__*/_interopDefaultLegacy(externalNamed);␊ + var externalMixed__default = /*#__PURE__*/_interopDefaultLegacy(externalMixed);␊ + var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespace(externalEsmDefault);␊ + ␊ function getAugmentedNamespace(n) {␊ if (n.__esModule) return n;␊ var a = Object.defineProperty({}, '__esModule', {value: true});␊ @@ -3084,12 +3144,12 @@ Generated by [AVA](https://avajs.dev). return a;␊ }␊ ␊ - var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault);␊ + var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊ ␊ - t.deepEqual(externalExports, { foo: 'foo' }, 'external exports');␊ - t.deepEqual(externalModuleExports, 'bar', 'external module exports');␊ - t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊ - t.deepEqual(externalMixed, 'bar', 'external mixed');␊ + t.deepEqual(externalExports__default['default'], { foo: 'foo' }, 'external exports');␊ + t.deepEqual(externalModuleExports__default['default'], 'bar', 'external module exports');␊ + t.deepEqual(externalNamed__default['default'], { foo: 'foo' }, 'external named');␊ + t.deepEqual(externalMixed__default['default'], 'bar', 'external mixed');␊ t.deepEqual(externalDefault, { default: 'bar' }, 'external default');␊ ␊ var main = {␊ @@ -3111,6 +3171,30 @@ Generated by [AVA](https://avajs.dev). var externalEsmMixed = require('external-esm-mixed');␊ var externalEsmDefault = require('external-esm-default');␊ ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespace(externalEsmNamed);␊ + var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespace(externalEsmMixed);␊ + var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespace(externalEsmDefault);␊ + ␊ function getAugmentedNamespace(n) {␊ if (n.__esModule) return n;␊ var a = Object.defineProperty({}, '__esModule', {value: true});␊ @@ -3126,11 +3210,11 @@ Generated by [AVA](https://avajs.dev). return a;␊ }␊ ␊ - var externalNamed = /*@__PURE__*/getAugmentedNamespace(externalEsmNamed);␊ + var externalNamed = /*@__PURE__*/getAugmentedNamespace(externalEsmNamed__namespace);␊ ␊ - var externalMixed = /*@__PURE__*/getAugmentedNamespace(externalEsmMixed);␊ + var externalMixed = /*@__PURE__*/getAugmentedNamespace(externalEsmMixed__namespace);␊ ␊ - var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault);␊ + var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊ ␊ t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊ t.deepEqual(externalMixed, { default: 'bar', foo: 'foo' }, 'external mixed');␊ @@ -3151,19 +3235,25 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ - function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }␊ + var externalExports = require('external-cjs-exports');␊ + var externalModuleExports = require('external-cjs-module-exports');␊ + var externalNamed = require('external-esm-named');␊ + var externalMixed = require('external-esm-mixed');␊ + var externalDefault = require('external-esm-default');␊ ␊ - var externalExports = _interopDefault(require('external-cjs-exports'));␊ - var externalModuleExports = _interopDefault(require('external-cjs-module-exports'));␊ - var externalNamed = _interopDefault(require('external-esm-named'));␊ - var externalMixed = _interopDefault(require('external-esm-mixed'));␊ - var externalDefault = _interopDefault(require('external-esm-default'));␊ + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊ ␊ - t.deepEqual(externalExports, { foo: 'foo' }, 'external exports');␊ - t.deepEqual(externalModuleExports, 'bar', 'external module exports');␊ - t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊ - t.deepEqual(externalMixed, 'bar', 'external mixed');␊ - t.deepEqual(externalDefault, 'bar', 'external default');␊ + var externalExports__default = /*#__PURE__*/_interopDefaultLegacy(externalExports);␊ + var externalModuleExports__default = /*#__PURE__*/_interopDefaultLegacy(externalModuleExports);␊ + var externalNamed__default = /*#__PURE__*/_interopDefaultLegacy(externalNamed);␊ + var externalMixed__default = /*#__PURE__*/_interopDefaultLegacy(externalMixed);␊ + var externalDefault__default = /*#__PURE__*/_interopDefaultLegacy(externalDefault);␊ + ␊ + t.deepEqual(externalExports__default['default'], { foo: 'foo' }, 'external exports');␊ + t.deepEqual(externalModuleExports__default['default'], 'bar', 'external module exports');␊ + t.deepEqual(externalNamed__default['default'], { foo: 'foo' }, 'external named');␊ + t.deepEqual(externalMixed__default['default'], 'bar', 'external mixed');␊ + t.deepEqual(externalDefault__default['default'], 'bar', 'external default');␊ ␊ var main = {␊ ␊ @@ -3216,6 +3306,25 @@ Generated by [AVA](https://avajs.dev). `, } +## expose-file-type-detection + +> Snapshot 1 + + { + 'main.js': `'use strict';␊ + ␊ + var other = require('./other.js');␊ + ␊ + t.is(other, 'foo');␊ + `, + 'other.js': `'use strict';␊ + ␊ + var other = 'foo';␊ + ␊ + module.exports = other;␊ + `, + } + ## external-imports > Snapshot 1 @@ -3223,11 +3332,13 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ - function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }␊ + var foo = require('foo');␊ ␊ - var foo = _interopDefault(require('foo'));␊ + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊ ␊ - var main = foo;␊ + var foo__default = /*#__PURE__*/_interopDefaultLegacy(foo);␊ + ␊ + var main = foo__default['default'];␊ ␊ module.exports = main;␊ `, @@ -3363,6 +3474,30 @@ Generated by [AVA](https://avajs.dev). var externalEsmMixed = require('external-esm-mixed');␊ var externalEsmDefault = require('external-esm-default');␊ ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespace(externalEsmNamed);␊ + var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespace(externalEsmMixed);␊ + var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespace(externalEsmDefault);␊ + ␊ const foo = 'foo';␊ ␊ var named = /*#__PURE__*/Object.freeze({␊ @@ -3389,11 +3524,11 @@ Generated by [AVA](https://avajs.dev). return n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;␊ }␊ ␊ - var externalNamed = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmNamed);␊ + var externalNamed = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmNamed__namespace);␊ ␊ - var externalMixed = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmMixed);␊ + var externalMixed = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmMixed__namespace);␊ ␊ - var externalDefault = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmDefault);␊ + var externalDefault = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmDefault__namespace);␊ ␊ t.deepEqual(named, { foo: 'foo' }, 'named exports');␊ t.deepEqual(mixed$1, { foo: 'foo', default: 'bar' }, 'mixed exports');␊ @@ -3422,6 +3557,30 @@ Generated by [AVA](https://avajs.dev). var externalEsmMixed = require('external-esm-mixed');␊ var externalEsmDefault = require('external-esm-default');␊ ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespace(externalEsmNamed);␊ + var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespace(externalEsmMixed);␊ + var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespace(externalEsmDefault);␊ + ␊ const foo = 'foo';␊ ␊ var named = /*#__PURE__*/Object.freeze({␊ @@ -3464,11 +3623,11 @@ Generated by [AVA](https://avajs.dev). return a;␊ }␊ ␊ - var externalNamed = /*@__PURE__*/getAugmentedNamespace(externalEsmNamed);␊ + var externalNamed = /*@__PURE__*/getAugmentedNamespace(externalEsmNamed__namespace);␊ ␊ - var externalMixed = /*@__PURE__*/getAugmentedNamespace(externalEsmMixed);␊ + var externalMixed = /*@__PURE__*/getAugmentedNamespace(externalEsmMixed__namespace);␊ ␊ - var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault);␊ + var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊ ␊ var namedExports = /*@__PURE__*/getAugmentedNamespace(named);␊ ␊ @@ -3633,12 +3792,36 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ - function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }␊ - ␊ var externalEsmNamed = require('external-esm-named');␊ - var externalMixed = _interopDefault(require('external-esm-mixed'));␊ + var externalMixed = require('external-esm-mixed');␊ var externalEsmDefault = require('external-esm-default');␊ ␊ + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊ + ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespace(externalEsmNamed);␊ + var externalMixed__default = /*#__PURE__*/_interopDefaultLegacy(externalMixed);␊ + var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespace(externalEsmDefault);␊ + ␊ function getDefaultExportFromNamespaceIfNotNamed (n) {␊ return n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;␊ }␊ @@ -3658,12 +3841,12 @@ Generated by [AVA](https://avajs.dev). return a;␊ }␊ ␊ - var externalNamed = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmNamed);␊ + var externalNamed = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmNamed__namespace);␊ ␊ - var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault);␊ + var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊ ␊ t.deepEqual(externalNamed, { foo: 'foo' }, 'named');␊ - t.deepEqual(externalMixed, 'bar', 'mixed');␊ + t.deepEqual(externalMixed__default['default'], 'bar', 'mixed');␊ t.deepEqual(externalDefault, { default: 'bar' }, 'default');␊ ␊ var main = {␊ @@ -3685,6 +3868,30 @@ Generated by [AVA](https://avajs.dev). var externalEsmMixed = require('external-esm-mixed');␊ var externalEsmDefault = require('external-esm-default');␊ ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespace(externalEsmNamed);␊ + var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespace(externalEsmMixed);␊ + var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespace(externalEsmDefault);␊ + ␊ const foo = 'foo';␊ ␊ var named = /*#__PURE__*/Object.freeze({␊ @@ -3716,9 +3923,9 @@ Generated by [AVA](https://avajs.dev). t.deepEqual(mixed$1, { foo: 'foo', default: 'bar' }, 'mixed exports');␊ t.deepEqual(_default$1, { default: 'bar' }, 'default export');␊ t.deepEqual(none, {}, 'no exports');␊ - t.deepEqual(externalEsmNamed, { foo: 'foo' }, 'external named');␊ - t.deepEqual(externalEsmMixed, { foo: 'foo', default: 'bar' }, 'external mixed');␊ - t.deepEqual(externalEsmDefault, { default: 'bar' }, 'external default');␊ + t.deepEqual(externalEsmNamed__namespace, { foo: 'foo' }, 'external named');␊ + t.deepEqual(externalEsmMixed__namespace, { foo: 'foo', default: 'bar' }, 'external mixed');␊ + t.deepEqual(externalEsmDefault__namespace, { default: 'bar' }, 'external default');␊ ␊ var main = {␊ ␊ @@ -3739,6 +3946,30 @@ Generated by [AVA](https://avajs.dev). var externalEsmMixed = require('external-esm-mixed');␊ var externalEsmDefault = require('external-esm-default');␊ ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespace(externalEsmNamed);␊ + var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespace(externalEsmMixed);␊ + var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespace(externalEsmDefault);␊ + ␊ const foo = 'foo';␊ ␊ var named = /*#__PURE__*/Object.freeze({␊ @@ -3758,11 +3989,11 @@ Generated by [AVA](https://avajs.dev). return n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;␊ }␊ ␊ - var externalNamed = /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(externalEsmNamed);␊ + var externalNamed = /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(externalEsmNamed__namespace);␊ ␊ - var externalMixed = /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(externalEsmMixed);␊ + var externalMixed = /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(externalEsmMixed__namespace);␊ ␊ - var externalDefault = /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(externalEsmDefault);␊ + var externalDefault = /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(externalEsmDefault__namespace);␊ ␊ t.deepEqual(named, { foo: 'foo' }, 'named exports');␊ t.deepEqual(mixedExports, 'bar', 'mixed exports');␊ @@ -3787,11 +4018,15 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ - function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }␊ + var externalNamed = require('external-esm-named');␊ + var externalMixed = require('external-esm-mixed');␊ + var externalDefault = require('external-esm-default');␊ + ␊ + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊ ␊ - var externalNamed = _interopDefault(require('external-esm-named'));␊ - var externalMixed = _interopDefault(require('external-esm-mixed'));␊ - var externalDefault = _interopDefault(require('external-esm-default'));␊ + var externalNamed__default = /*#__PURE__*/_interopDefaultLegacy(externalNamed);␊ + var externalMixed__default = /*#__PURE__*/_interopDefaultLegacy(externalMixed);␊ + var externalDefault__default = /*#__PURE__*/_interopDefaultLegacy(externalDefault);␊ ␊ var mixedExports = 'bar';␊ ␊ @@ -3799,9 +4034,9 @@ Generated by [AVA](https://avajs.dev). ␊ t.deepEqual(mixedExports, 'bar', 'mixed exports');␊ t.deepEqual(defaultExport, 'bar', 'default export');␊ - t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊ - t.deepEqual(externalMixed, 'bar', 'external mixed');␊ - t.deepEqual(externalDefault, 'bar', 'external default');␊ + t.deepEqual(externalNamed__default['default'], { foo: 'foo' }, 'external named');␊ + t.deepEqual(externalMixed__default['default'], 'bar', 'external mixed');␊ + t.deepEqual(externalDefault__default['default'], 'bar', 'external default');␊ ␊ var main = {␊ ␊ @@ -3822,6 +4057,30 @@ Generated by [AVA](https://avajs.dev). var externalEsmMixed = require('external-esm-mixed');␊ var externalEsmDefault = require('external-esm-default');␊ ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespace(externalEsmNamed);␊ + var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespace(externalEsmMixed);␊ + var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespace(externalEsmDefault);␊ + ␊ const foo = 'foo';␊ ␊ var named = /*#__PURE__*/Object.freeze({␊ @@ -3864,11 +4123,11 @@ Generated by [AVA](https://avajs.dev). return a;␊ }␊ ␊ - var externalNamed = /*@__PURE__*/getAugmentedNamespace(externalEsmNamed);␊ + var externalNamed = /*@__PURE__*/getAugmentedNamespace(externalEsmNamed__namespace);␊ ␊ - var externalMixed = /*@__PURE__*/getAugmentedNamespace(externalEsmMixed);␊ + var externalMixed = /*@__PURE__*/getAugmentedNamespace(externalEsmMixed__namespace);␊ ␊ - var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault);␊ + var externalDefault = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊ ␊ var namedExports = /*@__PURE__*/getAugmentedNamespace(named);␊ ␊ @@ -4718,9 +4977,11 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ - function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }␊ + var external = require('external-esm-default');␊ + ␊ + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊ ␊ - var external = _interopDefault(require('external-esm-default'));␊ + var external__default = /*#__PURE__*/_interopDefaultLegacy(external);␊ ␊ function getDefaultExportFromCjs (x) {␊ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ @@ -4748,7 +5009,7 @@ Generated by [AVA](https://avajs.dev). var dep$1 = /*@__PURE__*/getDefaultExportFromCjs(dep);␊ ␊ t.is(dep$1, 'default');␊ - t.is(external, 'bar');␊ + t.is(external__default['default'], 'bar');␊ `, } @@ -4933,10 +5194,11 @@ Generated by [AVA](https://avajs.dev). { 'main.js': `'use strict';␊ ␊ - function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }␊ - ␊ var external = require('external-esm-mixed');␊ - var external__default = _interopDefault(external);␊ + ␊ + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊ + ␊ + var external__default = /*#__PURE__*/_interopDefaultLegacy(external);␊ ␊ function getDefaultExportFromCjs (x) {␊ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ @@ -4966,7 +5228,7 @@ Generated by [AVA](https://avajs.dev). ␊ t.is(dep$1, 'default');␊ t.is(dep.named, 'named');␊ - t.is(external__default, 'bar');␊ + t.is(external__default['default'], 'bar');␊ t.is(external.foo, 'foo');␊ `, } @@ -5013,6 +5275,28 @@ Generated by [AVA](https://avajs.dev). ␊ var external = require('external-esm-default');␊ ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var external__namespace = /*#__PURE__*/_interopNamespace(external);␊ + ␊ function getDefaultExportFromCjs (x) {␊ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ }␊ @@ -5046,7 +5330,7 @@ Generated by [AVA](https://avajs.dev). default: 'default'␊ });␊ ␊ - t.deepEqual(external, {␊ + t.deepEqual(external__namespace, {␊ default: 'bar'␊ });␊ `, @@ -5061,6 +5345,28 @@ Generated by [AVA](https://avajs.dev). ␊ var external = require('external-esm-mixed');␊ ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var external__namespace = /*#__PURE__*/_interopNamespace(external);␊ + ␊ function getDefaultExportFromCjs (x) {␊ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ }␊ @@ -5096,7 +5402,7 @@ Generated by [AVA](https://avajs.dev). named: 'named'␊ });␊ ␊ - t.deepEqual(external, {␊ + t.deepEqual(external__namespace, {␊ default: 'bar',␊ foo: 'foo'␊ });␊ @@ -5112,6 +5418,28 @@ Generated by [AVA](https://avajs.dev). ␊ var external = require('external-esm-named');␊ ␊ + function _interopNamespace(e) {␊ + if (e && e.__esModule) return e;␊ + var n = Object.create(null);␊ + if (e) {␊ + Object.keys(e).forEach(function (k) {␊ + if (k !== 'default') {␊ + var d = Object.getOwnPropertyDescriptor(e, k);␊ + Object.defineProperty(n, k, d.get ? d : {␊ + enumerable: true,␊ + get: function () {␊ + return e[k];␊ + }␊ + });␊ + }␊ + });␊ + }␊ + n['default'] = e;␊ + return Object.freeze(n);␊ + }␊ + ␊ + var external__namespace = /*#__PURE__*/_interopNamespace(external);␊ + ␊ function getDefaultExportFromCjs (x) {␊ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊ }␊ @@ -5151,7 +5479,7 @@ Generated by [AVA](https://avajs.dev). default: { named: 'named' }␊ });␊ ␊ - t.deepEqual(external, {␊ + t.deepEqual(external__namespace, {␊ foo: 'foo'␊ });␊ `, diff --git a/packages/commonjs/test/snapshots/function.js.snap b/packages/commonjs/test/snapshots/function.js.snap index 3dd4848a5dea455e850baed60a658ec781d2c09d..d4f280d77e4be4d9e17815e12fa4046ed03babdd 100644 GIT binary patch literal 12714 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 W?eANhDuhw^_G@T|xsWFS1Nkpv+rK{m literal 11070 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 F{{^3DLbLz? diff --git a/packages/commonjs/test/test.js b/packages/commonjs/test/test.js index b096d5bd7..17a8b6129 100644 --- a/packages/commonjs/test/test.js +++ b/packages/commonjs/test/test.js @@ -1,12 +1,13 @@ /* eslint-disable line-comment-position, no-new-func, no-undefined */ import * as path from 'path'; +import resolve from '@rollup/plugin-node-resolve'; + import test from 'ava'; -import { SourceMapConsumer } from 'source-map'; -import { install } from 'source-map-support'; import { getLocator } from 'locate-character'; import { rollup } from 'rollup'; -import resolve from '@rollup/plugin-node-resolve'; +import { SourceMapConsumer } from 'source-map'; +import { install } from 'source-map-support'; import { testBundle } from '../../../util/test'; @@ -722,3 +723,26 @@ test('does not wrap commonjsRegister calls in createCommonjsModule', async (t) = t.not(/createCommonjsModule\(function/.test(code), true); }); + +// This test uses worker threads to simulate an empty internal cache and needs at least Node 12 +if (Number(/^v(\d+)/.exec(process.version)[1]) >= 12) { + test('can be cached across instances', async (t) => { + const bundle = await rollup({ + input: 'fixtures/samples/caching/main.js', + plugins: [commonjs()] + }); + const { cache } = bundle; + const code = await getCodeFromBundle(bundle); + + // We do a second run in a worker so that all internal state is cleared + const { Worker } = await import('worker_threads'); + const getRollupUpCodeWithCache = new Worker( + path.join(__dirname, 'fixtures/samples/caching/rollupWorker.js'), + { + workerData: cache + } + ); + + t.is(code, await new Promise((done) => getRollupUpCodeWithCache.on('message', done))); + }); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d996e6600..901d68cc0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -135,7 +135,7 @@ importers: typescript: ^3.9.7 packages/commonjs: dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.23.0 + '@rollup/pluginutils': 3.1.0_rollup@2.30.0 commondir: 1.0.1 estree-walker: 2.0.1 glob: 7.1.6 @@ -143,11 +143,11 @@ importers: magic-string: 0.25.7 resolve: 1.17.0 devDependencies: - '@rollup/plugin-json': 4.1.0_rollup@2.23.0 - '@rollup/plugin-node-resolve': 8.4.0_rollup@2.23.0 + '@rollup/plugin-json': 4.1.0_rollup@2.30.0 + '@rollup/plugin-node-resolve': 8.4.0_rollup@2.30.0 locate-character: 2.0.5 require-relative: 0.8.7 - rollup: 2.23.0 + rollup: 2.30.0 shx: 0.3.2 source-map: 0.7.3 source-map-support: 0.5.19 @@ -164,7 +164,7 @@ importers: magic-string: ^0.25.7 require-relative: ^0.8.7 resolve: ^1.17.0 - rollup: ^2.23.0 + rollup: ^2.30.0 shx: ^0.3.2 source-map: ^0.7.3 source-map-support: ^0.5.19 @@ -1576,6 +1576,15 @@ packages: rollup: ^1.20.0 || ^2.0.0 resolution: integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== + /@rollup/plugin-json/4.1.0_rollup@2.30.0: + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.30.0 + rollup: 2.30.0 + dev: true + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + resolution: + integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== /@rollup/plugin-node-resolve/8.4.0_rollup@2.23.0: dependencies: '@rollup/pluginutils': 3.1.0_rollup@2.23.0 @@ -1593,6 +1602,23 @@ packages: rollup: ^1.20.0||^2.0.0 resolution: integrity: sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== + /@rollup/plugin-node-resolve/8.4.0_rollup@2.30.0: + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.30.0 + '@types/resolve': 1.17.1 + builtin-modules: 3.1.0 + deep-freeze: 0.0.1 + deepmerge: 4.2.2 + is-module: 1.0.0 + resolve: 1.17.0 + rollup: 2.30.0 + dev: true + engines: + node: '>= 8.0.0' + peerDependencies: + rollup: ^1.20.0||^2.0.0 + resolution: + integrity: sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== /@rollup/plugin-typescript/5.0.2_rollup@2.23.0: dependencies: '@rollup/pluginutils': 3.1.0_rollup@2.23.0 @@ -1656,6 +1682,18 @@ packages: rollup: ^1.20.0||^2.0.0 resolution: integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + /@rollup/pluginutils/3.1.0_rollup@2.30.0: + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.2.2 + rollup: 2.30.0 + engines: + node: '>= 8.0.0' + peerDependencies: + rollup: ^1.20.0||^2.0.0 + resolution: + integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== /@sindresorhus/is/0.14.0: dev: true engines: @@ -6400,6 +6438,15 @@ packages: fsevents: 2.1.3 resolution: integrity: sha512-vLNmZFUGVwrnqNAJ/BvuLk1MtWzu4IuoqsH9UWK5AIdO3rt8/CSiJNvPvCIvfzrbNsqKbNzPAG1V2O4eTe2XZg== + /rollup/2.30.0: + dev: true + engines: + node: '>=10.0.0' + hasBin: true + optionalDependencies: + fsevents: 2.1.3 + resolution: + integrity: sha512-j4K1hUZfgFM03DUpayd3c7kZW+2wDbI6rj7ssQxpCpL1vsGpaM0vSorxBuePFwQDFq9O2DI6AOQbm174Awsq4w== /run-async/2.4.1: dev: true engines: