diff --git a/packages/dynamic-import-vars/README.md b/packages/dynamic-import-vars/README.md index cb157bf76..5880cd909 100644 --- a/packages/dynamic-import-vars/README.md +++ b/packages/dynamic-import-vars/README.md @@ -19,7 +19,7 @@ function importLocale(locale) { ## Requirements -This plugin requires an [LTS](https://github.com/nodejs/Release) Node version (v10.0.0+) and Rollup v1.20.0+. +This plugin requires an [LTS](https://github.com/nodejs/Release) Node version (v14.0.0+) and Rollup v1.20.0+. ## Install diff --git a/packages/dynamic-import-vars/package.json b/packages/dynamic-import-vars/package.json index 5bb3eb790..3735a5fef 100644 --- a/packages/dynamic-import-vars/package.json +++ b/packages/dynamic-import-vars/package.json @@ -13,10 +13,15 @@ "author": "LarsDenBakker", "homepage": "https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars", "bugs": "https://github.com/rollup/plugins/issues", - "main": "dist/index.js", - "module": "dist/index.es.js", + "main": "./dist/cjs/index.js", + "module": "./dist/es/index.js", + "exports": { + "import": "./dist/es/index.js", + "types": "./types/index.d.ts", + "default": "./dist/cjs/index.js" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=14.0.0" }, "scripts": { "build": "rollup -c", @@ -32,6 +37,7 @@ }, "files": [ "dist", + "!dist/**/*.map", "types", "README.md", "LICENSE" @@ -48,25 +54,27 @@ "interpolation" ], "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } }, "dependencies": { - "@rollup/pluginutils": "^4.1.2", - "estree-walker": "^2.0.1", - "fast-glob": "^3.2.7", - "magic-string": "^0.25.7" + "@rollup/pluginutils": "^4.2.1", + "estree-walker": "^2.0.2", + "fast-glob": "^3.2.12", + "magic-string": "^0.26.4" }, "devDependencies": { - "acorn": "^7.3.1", - "acorn-dynamic-import": "^4.0.0", - "prettier": "^2.0.5", - "rollup": "^2.67.3" + "acorn": "^8.8.0", + "prettier": "^2.7.1", + "rollup": "^3.0.0-7" }, "types": "./types/index.d.ts", "ava": { - "babel": { - "compileEnhancements": false - }, + "workerThreads": false, "files": [ "!**/fixtures/**", "!**/snapshots/**" diff --git a/packages/dynamic-import-vars/rollup.config.js b/packages/dynamic-import-vars/rollup.config.js deleted file mode 100755 index 5625775d6..000000000 --- a/packages/dynamic-import-vars/rollup.config.js +++ /dev/null @@ -1,10 +0,0 @@ -import pkg from './package.json'; - -export default { - input: 'src/index.js', - external: [...Object.keys(pkg.dependencies), 'path'], - output: [ - { file: pkg.main, format: 'cjs', exports: 'named' }, - { file: pkg.module, format: 'es' } - ] -}; diff --git a/packages/dynamic-import-vars/rollup.config.mjs b/packages/dynamic-import-vars/rollup.config.mjs new file mode 100755 index 000000000..80558c224 --- /dev/null +++ b/packages/dynamic-import-vars/rollup.config.mjs @@ -0,0 +1,11 @@ +import { readFileSync } from 'fs'; + +import { createConfig } from '../../shared/rollup.config.mjs'; + +export default { + ...createConfig({ + pkg: JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf8')) + }), + input: 'src/index.js', + plugins: [] +}; diff --git a/packages/dynamic-import-vars/test/node_modules/current-package b/packages/dynamic-import-vars/test/node_modules/current-package new file mode 120000 index 000000000..c25bddb6d --- /dev/null +++ b/packages/dynamic-import-vars/test/node_modules/current-package @@ -0,0 +1 @@ +../.. \ No newline at end of file diff --git a/packages/dynamic-import-vars/test/rollup-plugin-dynamic-import-vars.test.js b/packages/dynamic-import-vars/test/rollup-plugin-dynamic-import-vars.test.js index 0d16393ed..fbd3a4f40 100644 --- a/packages/dynamic-import-vars/test/rollup-plugin-dynamic-import-vars.test.js +++ b/packages/dynamic-import-vars/test/rollup-plugin-dynamic-import-vars.test.js @@ -5,7 +5,7 @@ const { join } = require('path'); const test = require('ava'); const { rollup } = require('rollup'); -const dynamicImportVars = require('../dist/index').default; +const dynamicImportVars = require('current-package'); process.chdir(join(__dirname, 'fixtures')); diff --git a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-variables.js.md b/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-variables.js.md deleted file mode 100644 index b8028d46d..000000000 --- a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-variables.js.md +++ /dev/null @@ -1,181 +0,0 @@ -# Snapshot report for `test/rollup-plugin-dynamic-import-variables.js` - -The actual snapshot is saved in `rollup-plugin-dynamic-import-variables.js.snap`. - -Generated by [AVA](https://ava.li). - -## can exclude files - -> Snapshot 1 - - `function importModule(name) {␊ - return import(`./module-dir-a/${name}.js`);␊ - }␊ - ␊ - export { importModule };␊ - ` - -## complex concatenation - -> Snapshot 1 - - `function __variableDynamicImportRuntime0__(path) {␊ - switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-80325d58.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-173cc5f5.js');␊ - case './module-dir-b/module-b-1.js': return import('./module-b-1-72e7a68a.js');␊ - case './module-dir-b/module-b-2.js': return import('./module-b-2-4b67cae0.js');␊ - default: throw new Error("Unknown variable dynamic import: " + path);␊ - }␊ - }␊ - ␊ - function importModule(dirName, name) {␊ - return __variableDynamicImportRuntime0__(`./${`module-dir-${dirName}`}` + '/' + name + '.js');␊ - }␊ - ␊ - export { importModule };␊ - ` - -## doesn't change imports that should not be changed - -> Snapshot 1 - - `console.log("a-1");␊ - ␊ - function importModuleA() {␊ - return import('./module-a-2-173cc5f5.js');␊ - }␊ - ␊ - function importModuleB() {␊ - return import('./' + 'module-dir-a' + '/' + 'module-a-2' + '.js');␊ - }␊ - ␊ - export { importModuleA, importModuleB };␊ - ` - -## multiple dirs - -> Snapshot 1 - - `function __variableDynamicImportRuntime0__(path) {␊ - switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-80325d58.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-173cc5f5.js');␊ - case './module-dir-b/module-b-1.js': return import('./module-b-1-72e7a68a.js');␊ - case './module-dir-b/module-b-2.js': return import('./module-b-2-4b67cae0.js');␊ - case './sub-dir/fixture-upwards-path.js': return import('./fixture-upwards-path-b912919e.js');␊ - default: throw new Error("Unknown variable dynamic import: " + path);␊ - }␊ - }␊ - ␊ - function importModule(dir, name) {␊ - return __variableDynamicImportRuntime0__(`./${dir}/${name}.js`);␊ - }␊ - ␊ - export { importModule };␊ - ` - -## multiple dynamic imports - -> Snapshot 1 - - `function __variableDynamicImportRuntime2__(path) {␊ - switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-80325d58.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-173cc5f5.js');␊ - case './module-dir-b/module-b-1.js': return import('./module-b-1-72e7a68a.js');␊ - case './module-dir-b/module-b-2.js': return import('./module-b-2-4b67cae0.js');␊ - case './sub-dir/fixture-upwards-path.js': return import('./fixture-upwards-path-b912919e.js');␊ - default: throw new Error("Unknown variable dynamic import: " + path);␊ - }␊ - }␊ - ␊ - function __variableDynamicImportRuntime1__(path) {␊ - switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-80325d58.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-173cc5f5.js');␊ - default: throw new Error("Unknown variable dynamic import: " + path);␊ - }␊ - }␊ - ␊ - function __variableDynamicImportRuntime0__(path) {␊ - switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-80325d58.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-173cc5f5.js');␊ - default: throw new Error("Unknown variable dynamic import: " + path);␊ - }␊ - }␊ - ␊ - class Foo {␊ - importModule(name) {␊ - return __variableDynamicImportRuntime0__(`./module-dir-a/${name}.js`);␊ - }␊ - }␊ - ␊ - __variableDynamicImportRuntime1__(`./module-dir-a/${name}.js`).then((module) => {␊ - console.log('imported', module);␊ - });␊ - ␊ - function importModuleFromDir(dir, name) {␊ - return __variableDynamicImportRuntime2__(`./${dir}/${name}.js`);␊ - }␊ - ␊ - export { Foo, importModuleFromDir };␊ - ` - -## own directory - -> Snapshot 1 - - `function __variableDynamicImportRuntime0__(path) {␊ - switch (path) {␊ - case './root-module-a.js': return import('./root-module-a-0cd41d7c.js');␊ - case './root-module-b.js': return import('./root-module-b-decca893.js');␊ - default: throw new Error("Unknown variable dynamic import: " + path);␊ - }␊ - }␊ - ␊ - function importModule(name) {␊ - return __variableDynamicImportRuntime0__(`./root-module-${name}.js`);␊ - }␊ - ␊ - export { importModule };␊ - ` - -## single dir - -> Snapshot 1 - - `function __variableDynamicImportRuntime0__(path) {␊ - switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-80325d58.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-173cc5f5.js');␊ - default: throw new Error("Unknown variable dynamic import: " + path);␊ - }␊ - }␊ - ␊ - function importModule(name) {␊ - return __variableDynamicImportRuntime0__(`./module-dir-a/${name}.js`);␊ - }␊ - ␊ - export { importModule };␊ - ` - -## upwards dir path - -> Snapshot 1 - - `function __variableDynamicImportRuntime0__(path) {␊ - switch (path) {␊ - case '../module-dir-a/module-a-1.js': return import('./module-a-1-80325d58.js');␊ - case '../module-dir-a/module-a-2.js': return import('./module-a-2-173cc5f5.js');␊ - default: throw new Error("Unknown variable dynamic import: " + path);␊ - }␊ - }␊ - ␊ - function importModule(name) {␊ - return __variableDynamicImportRuntime0__(`../module-dir-a/${name}.js`);␊ - }␊ - ␊ - export { importModule };␊ - ` diff --git a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-variables.js.snap b/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-variables.js.snap deleted file mode 100644 index d1a0e78be..000000000 Binary files a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-variables.js.snap and /dev/null differ diff --git a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.md b/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.md index b64709270..c2324683e 100644 --- a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.md +++ b/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.md @@ -10,8 +10,8 @@ Generated by [AVA](https://avajs.dev). `function __variableDynamicImportRuntime0__(path) {␊ switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-a1a9dfd0.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-28fb3b62.js');␊ + case './module-dir-a/module-a-1.js': return import('./module-a-1-46aeaa54.js');␊ + case './module-dir-a/module-a-2.js': return import('./module-a-2-cf42d8af.js');␊ default: return new Promise(function(resolve, reject) {␊ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(␊ reject.bind(null, new Error("Unknown variable dynamic import: " + path))␊ @@ -21,7 +21,7 @@ Generated by [AVA](https://avajs.dev). }␊ ␊ function importModule(name) {␊ - return __variableDynamicImportRuntime0__(`./module-dir-a/${name}.js`);␊ + return __variableDynamicImportRuntime0__(\`./module-dir-a/${name}.js\`);␊ }␊ ␊ export { importModule };␊ @@ -33,11 +33,11 @@ Generated by [AVA](https://avajs.dev). `function __variableDynamicImportRuntime0__(path) {␊ switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-a1a9dfd0.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-28fb3b62.js');␊ - case './module-dir-b/module-b-1.js': return import('./module-b-1-a616b1e9.js');␊ - case './module-dir-b/module-b-2.js': return import('./module-b-2-219276fa.js');␊ - case './sub-dir/fixture-upwards-path.js': return import('./fixture-upwards-path-35191ee0.js');␊ + case './module-dir-a/module-a-1.js': return import('./module-a-1-46aeaa54.js');␊ + case './module-dir-a/module-a-2.js': return import('./module-a-2-cf42d8af.js');␊ + case './module-dir-b/module-b-1.js': return import('./module-b-1-7b773b3a.js');␊ + case './module-dir-b/module-b-2.js': return import('./module-b-2-e1209a85.js');␊ + case './sub-dir/fixture-upwards-path.js': return import('./fixture-upwards-path-4b2f0419.js');␊ default: return new Promise(function(resolve, reject) {␊ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(␊ reject.bind(null, new Error("Unknown variable dynamic import: " + path))␊ @@ -47,7 +47,7 @@ Generated by [AVA](https://avajs.dev). }␊ ␊ function importModule(dir, name) {␊ - return __variableDynamicImportRuntime0__(`./${dir}/${name}.js`);␊ + return __variableDynamicImportRuntime0__(\`./${dir}/${name}.js\`);␊ }␊ ␊ export { importModule };␊ @@ -59,8 +59,8 @@ Generated by [AVA](https://avajs.dev). `function __variableDynamicImportRuntime0__(path) {␊ switch (path) {␊ - case '../module-dir-a/module-a-1.js': return import('./module-a-1-a1a9dfd0.js');␊ - case '../module-dir-a/module-a-2.js': return import('./module-a-2-28fb3b62.js');␊ + case '../module-dir-a/module-a-1.js': return import('./module-a-1-46aeaa54.js');␊ + case '../module-dir-a/module-a-2.js': return import('./module-a-2-cf42d8af.js');␊ default: return new Promise(function(resolve, reject) {␊ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(␊ reject.bind(null, new Error("Unknown variable dynamic import: " + path))␊ @@ -70,7 +70,7 @@ Generated by [AVA](https://avajs.dev). }␊ ␊ function importModule(name) {␊ - return __variableDynamicImportRuntime0__(`../module-dir-a/${name}.js`);␊ + return __variableDynamicImportRuntime0__(\`../module-dir-a/${name}.js\`);␊ }␊ ␊ export { importModule };␊ @@ -82,10 +82,10 @@ Generated by [AVA](https://avajs.dev). `function __variableDynamicImportRuntime0__(path) {␊ switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-a1a9dfd0.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-28fb3b62.js');␊ - case './module-dir-b/module-b-1.js': return import('./module-b-1-a616b1e9.js');␊ - case './module-dir-b/module-b-2.js': return import('./module-b-2-219276fa.js');␊ + case './module-dir-a/module-a-1.js': return import('./module-a-1-46aeaa54.js');␊ + case './module-dir-a/module-a-2.js': return import('./module-a-2-cf42d8af.js');␊ + case './module-dir-b/module-b-1.js': return import('./module-b-1-7b773b3a.js');␊ + case './module-dir-b/module-b-2.js': return import('./module-b-2-e1209a85.js');␊ default: return new Promise(function(resolve, reject) {␊ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(␊ reject.bind(null, new Error("Unknown variable dynamic import: " + path))␊ @@ -95,7 +95,7 @@ Generated by [AVA](https://avajs.dev). }␊ ␊ function importModule(dirName, name) {␊ - return __variableDynamicImportRuntime0__(`${`./${`module-dir-${dirName}`}` + '/'}${name}.js`);␊ + return __variableDynamicImportRuntime0__(\`${\`./${\`module-dir-${dirName}\`}\` + '/'}${name}.js\`);␊ }␊ ␊ export { importModule };␊ @@ -107,8 +107,8 @@ Generated by [AVA](https://avajs.dev). `function __variableDynamicImportRuntime0__(path) {␊ switch (path) {␊ - case './root-module-a.js': return import('./root-module-a-53575bcc.js');␊ - case './root-module-b.js': return import('./root-module-b-55333443.js');␊ + case './root-module-a.js': return import('./root-module-a-0debaeb6.js');␊ + case './root-module-b.js': return import('./root-module-b-0da599d4.js');␊ default: return new Promise(function(resolve, reject) {␊ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(␊ reject.bind(null, new Error("Unknown variable dynamic import: " + path))␊ @@ -118,7 +118,7 @@ Generated by [AVA](https://avajs.dev). }␊ ␊ function importModule(name) {␊ - return __variableDynamicImportRuntime0__(`./root-module-${name}.js`);␊ + return __variableDynamicImportRuntime0__(\`./root-module-${name}.js\`);␊ }␊ ␊ export { importModule };␊ @@ -130,11 +130,11 @@ Generated by [AVA](https://avajs.dev). `function __variableDynamicImportRuntime2__(path) {␊ switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-a1a9dfd0.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-28fb3b62.js');␊ - case './module-dir-b/module-b-1.js': return import('./module-b-1-a616b1e9.js');␊ - case './module-dir-b/module-b-2.js': return import('./module-b-2-219276fa.js');␊ - case './sub-dir/fixture-upwards-path.js': return import('./fixture-upwards-path-35191ee0.js');␊ + case './module-dir-a/module-a-1.js': return import('./module-a-1-46aeaa54.js');␊ + case './module-dir-a/module-a-2.js': return import('./module-a-2-cf42d8af.js');␊ + case './module-dir-b/module-b-1.js': return import('./module-b-1-7b773b3a.js');␊ + case './module-dir-b/module-b-2.js': return import('./module-b-2-e1209a85.js');␊ + case './sub-dir/fixture-upwards-path.js': return import('./fixture-upwards-path-4b2f0419.js');␊ default: return new Promise(function(resolve, reject) {␊ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(␊ reject.bind(null, new Error("Unknown variable dynamic import: " + path))␊ @@ -145,8 +145,8 @@ Generated by [AVA](https://avajs.dev). ␊ function __variableDynamicImportRuntime1__(path) {␊ switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-a1a9dfd0.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-28fb3b62.js');␊ + case './module-dir-a/module-a-1.js': return import('./module-a-1-46aeaa54.js');␊ + case './module-dir-a/module-a-2.js': return import('./module-a-2-cf42d8af.js');␊ default: return new Promise(function(resolve, reject) {␊ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(␊ reject.bind(null, new Error("Unknown variable dynamic import: " + path))␊ @@ -157,8 +157,8 @@ Generated by [AVA](https://avajs.dev). ␊ function __variableDynamicImportRuntime0__(path) {␊ switch (path) {␊ - case './module-dir-a/module-a-1.js': return import('./module-a-1-a1a9dfd0.js');␊ - case './module-dir-a/module-a-2.js': return import('./module-a-2-28fb3b62.js');␊ + case './module-dir-a/module-a-1.js': return import('./module-a-1-46aeaa54.js');␊ + case './module-dir-a/module-a-2.js': return import('./module-a-2-cf42d8af.js');␊ default: return new Promise(function(resolve, reject) {␊ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(␊ reject.bind(null, new Error("Unknown variable dynamic import: " + path))␊ @@ -169,16 +169,16 @@ Generated by [AVA](https://avajs.dev). ␊ class Foo {␊ importModule(name) {␊ - return __variableDynamicImportRuntime0__(`./module-dir-a/${name}.js`);␊ + return __variableDynamicImportRuntime0__(\`./module-dir-a/${name}.js\`);␊ }␊ }␊ ␊ - __variableDynamicImportRuntime1__(`./module-dir-a/${name}.js`).then((module) => {␊ + __variableDynamicImportRuntime1__(\`./module-dir-a/${name}.js\`).then((module) => {␊ console.log('imported', module);␊ });␊ ␊ function importModuleFromDir(dir, name) {␊ - return __variableDynamicImportRuntime2__(`./${dir}/${name}.js`);␊ + return __variableDynamicImportRuntime2__(\`./${dir}/${name}.js\`);␊ }␊ ␊ export { Foo, importModuleFromDir };␊ @@ -191,7 +191,7 @@ Generated by [AVA](https://avajs.dev). `console.log('a-1');␊ ␊ function importModuleA() {␊ - return import('./module-a-2-28fb3b62.js');␊ + return import('./module-a-2-cf42d8af.js');␊ }␊ ␊ function importModuleB() {␊ @@ -206,7 +206,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `function importModule(name) {␊ - return import(`./module-dir-a/${name}.js`);␊ + return import(\`./module-dir-a/${name}.js\`);␊ }␊ ␊ export { importModule };␊ diff --git a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.snap b/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.snap index bd60a1d2b..27b86efcc 100644 Binary files a/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.snap and b/packages/dynamic-import-vars/test/snapshots/rollup-plugin-dynamic-import-vars.test.js.snap differ diff --git a/packages/dynamic-import-vars/test/src/dynamic-import-to-glob.test.js b/packages/dynamic-import-vars/test/src/dynamic-import-to-glob.test.mjs similarity index 60% rename from packages/dynamic-import-vars/test/src/dynamic-import-to-glob.test.js rename to packages/dynamic-import-vars/test/src/dynamic-import-to-glob.test.mjs index e0f5d8284..a08624b49 100644 --- a/packages/dynamic-import-vars/test/src/dynamic-import-to-glob.test.js +++ b/packages/dynamic-import-vars/test/src/dynamic-import-to-glob.test.mjs @@ -1,147 +1,144 @@ /* eslint-disable import/extensions, import/no-unresolved, no-template-curly-in-string */ -import { Parser } from 'acorn'; -import dynamicImport from 'acorn-dynamic-import'; +import { parse } from 'acorn'; import test from 'ava'; -import { dynamicImportToGlob, VariableDynamicImportError } from '../../dist/index'; - -const CustomParser = Parser.extend(dynamicImport); +import { dynamicImportToGlob, VariableDynamicImportError } from 'current-package'; test('template literal with variable filename', (t) => { - const ast = CustomParser.parse('import(`./foo/${bar}.js`);', { + const ast = parse('import(`./foo/${bar}.js`);', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './foo/*.js'); }); test('external', (t) => { - const ast = CustomParser.parse('import(`https://some.cdn.com/package/${version}/index.js`);', { + const ast = parse('import(`https://some.cdn.com/package/${version}/index.js`);', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, null); }); test('external - leaves bare module specifiers starting with https in tact', (t) => { - const ast = CustomParser.parse('import("http_utils");', { + const ast = parse('import("http_utils");', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, null); }); test('data uri', (t) => { - const ast = CustomParser.parse('import(`data:${bar}`);', { + const ast = parse('import(`data:${bar}`);', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, null); }); test('template literal with dot-prefixed suffix', (t) => { - const ast = CustomParser.parse('import(`./${bar}.entry.js`);', { + const ast = parse('import(`./${bar}.entry.js`);', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './*.entry.js'); }); test('template literal with variable directory', (t) => { - const ast = CustomParser.parse('import(`./foo/${bar}/x.js`);', { + const ast = parse('import(`./foo/${bar}/x.js`);', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './foo/*/x.js'); }); test('template literal with multiple variables', (t) => { - const ast = CustomParser.parse('import(`./${foo}/${bar}.js`);', { + const ast = parse('import(`./${foo}/${bar}.js`);', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './*/*.js'); }); test('dynamic expression with variable filename', (t) => { - const ast = CustomParser.parse('import("./foo/".concat(bar,".js"));', { + const ast = parse('import("./foo/".concat(bar,".js"));', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './foo/*.js'); }); test('dynamic expression with variable directory', (t) => { - const ast = CustomParser.parse('import("./foo/".concat(bar, "/x.js"));', { + const ast = parse('import("./foo/".concat(bar, "/x.js"));', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './foo/*/x.js'); }); test('dynamic expression with multiple variables', (t) => { - const ast = CustomParser.parse('import("./".concat(foo, "/").concat(bar,".js"));', { + const ast = parse('import("./".concat(foo, "/").concat(bar,".js"));', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './*/*.js'); }); test('string concatenation', (t) => { - const ast = CustomParser.parse('import("./foo/" + bar + ".js");', { + const ast = parse('import("./foo/" + bar + ".js");', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './foo/*.js'); }); test('string concatenation and template literals combined', (t) => { - const ast = CustomParser.parse('import("./" + `foo/${bar}` + ".js");', { + const ast = parse('import("./" + `foo/${bar}` + ".js");', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './foo/*.js'); }); test('string literal in a template literal expression', (t) => { - const ast = CustomParser.parse('import(`${"./foo/"}${bar}.js`);', { + const ast = parse('import(`${"./foo/"}${bar}.js`);', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './foo/*.js'); }); test('multiple variables are collapsed into a single *', (t) => { - const ast = CustomParser.parse('import(`./foo/${bar}${baz}/${x}${y}.js`);', { + const ast = parse('import(`./foo/${bar}${baz}/${x}${y}.js`);', { sourceType: 'module' }); - const glob = dynamicImportToGlob(ast.body[0].expression.arguments[0]); + const glob = dynamicImportToGlob(ast.body[0].expression.source); t.is(glob, './foo/*/*.js'); }); test('throws when dynamic import contains a *', (t) => { - const ast = CustomParser.parse('import(`./*${foo}.js`);', { + const ast = parse('import(`./*${foo}.js`);', { sourceType: 'module' }); let error; try { - dynamicImportToGlob(ast.body[0].expression.arguments[0]); + dynamicImportToGlob(ast.body[0].expression.source); } catch (e) { error = e; } @@ -150,13 +147,13 @@ test('throws when dynamic import contains a *', (t) => { }); test('throws when dynamic import contains a non + operator', (t) => { - const ast = CustomParser.parse('import("foo" - "bar.js");', { + const ast = parse('import("foo" - "bar.js");', { sourceType: 'module' }); let error; try { - dynamicImportToGlob(ast.body[0].expression.arguments[0]); + dynamicImportToGlob(ast.body[0].expression.source); } catch (e) { error = e; } @@ -165,13 +162,13 @@ test('throws when dynamic import contains a non + operator', (t) => { }); test('throws when dynamic import is a single variable', (t) => { - const ast = CustomParser.parse('import(foo);', { + const ast = parse('import(foo);', { sourceType: 'module' }); let error; try { - dynamicImportToGlob(ast.body[0].expression.arguments[0], '${sourceString}'); + dynamicImportToGlob(ast.body[0].expression.source, '${sourceString}'); } catch (e) { error = e; } @@ -183,13 +180,13 @@ test('throws when dynamic import is a single variable', (t) => { }); test('throws when dynamic import starts with a variable', (t) => { - const ast = CustomParser.parse('import(`${folder}/foo.js`);', { + const ast = parse('import(`${folder}/foo.js`);', { sourceType: 'module' }); let error; try { - dynamicImportToGlob(ast.body[0].expression.arguments[0], '${sourceString}'); + dynamicImportToGlob(ast.body[0].expression.source, '${sourceString}'); } catch (e) { error = e; } @@ -201,13 +198,13 @@ test('throws when dynamic import starts with a variable', (t) => { }); test('throws when dynamic import starts with a /', (t) => { - const ast = CustomParser.parse('import(`/foo/${bar}.js`);', { + const ast = parse('import(`/foo/${bar}.js`);', { sourceType: 'module' }); let error; try { - dynamicImportToGlob(ast.body[0].expression.arguments[0], '${sourceString}'); + dynamicImportToGlob(ast.body[0].expression.source, '${sourceString}'); } catch (e) { error = e; } @@ -219,13 +216,13 @@ test('throws when dynamic import starts with a /', (t) => { }); test('throws when dynamic import does not start with ./', (t) => { - const ast = CustomParser.parse('import(`foo/${bar}.js`);', { + const ast = parse('import(`foo/${bar}.js`);', { sourceType: 'module' }); let error; try { - dynamicImportToGlob(ast.body[0].expression.arguments[0], '${sourceString}'); + dynamicImportToGlob(ast.body[0].expression.source, '${sourceString}'); } catch (e) { error = e; } @@ -237,13 +234,13 @@ test('throws when dynamic import does not start with ./', (t) => { }); test("throws when dynamic import imports it's own directory", (t) => { - const ast = CustomParser.parse('import(`./${foo}.js`);', { + const ast = parse('import(`./${foo}.js`);', { sourceType: 'module' }); let error; try { - dynamicImportToGlob(ast.body[0].expression.arguments[0], '${sourceString}'); + dynamicImportToGlob(ast.body[0].expression.source, '${sourceString}'); } catch (e) { error = e; } @@ -255,13 +252,13 @@ test("throws when dynamic import imports it's own directory", (t) => { }); test('throws when dynamic import imports does not contain a file extension', (t) => { - const ast = CustomParser.parse('import(`./foo/${bar}`);', { + const ast = parse('import(`./foo/${bar}`);', { sourceType: 'module' }); let error; try { - dynamicImportToGlob(ast.body[0].expression.arguments[0], '${sourceString}'); + dynamicImportToGlob(ast.body[0].expression.source, '${sourceString}'); } catch (e) { error = e; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e24eda6af..f605a4f4c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -232,24 +232,22 @@ importers: packages/dynamic-import-vars: specifiers: - '@rollup/pluginutils': ^4.1.2 - acorn: ^7.3.1 - acorn-dynamic-import: ^4.0.0 - estree-walker: ^2.0.1 - fast-glob: ^3.2.7 - magic-string: ^0.25.7 - prettier: ^2.0.5 - rollup: ^2.67.3 + '@rollup/pluginutils': ^4.2.1 + acorn: ^8.8.0 + estree-walker: ^2.0.2 + fast-glob: ^3.2.12 + magic-string: ^0.26.4 + prettier: ^2.7.1 + rollup: ^3.0.0-7 dependencies: '@rollup/pluginutils': 4.2.1 estree-walker: 2.0.2 fast-glob: 3.2.12 - magic-string: 0.25.9 + magic-string: 0.26.4 devDependencies: - acorn: 7.4.1 - acorn-dynamic-import: 4.0.0_acorn@7.4.1 + acorn: 8.8.0 prettier: 2.7.1 - rollup: 2.79.1 + rollup: 3.0.0-7 packages/eslint: specifiers: @@ -2729,15 +2727,6 @@ packages: dependencies: acorn: 6.4.2 - /acorn-dynamic-import/4.0.0_acorn@7.4.1: - resolution: {integrity: sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==} - deprecated: This is probably built in to whatever tool you're using. If you still need it... idk - peerDependencies: - acorn: ^6.0.0 - dependencies: - acorn: 7.4.1 - dev: true - /acorn-jsx/5.3.2_acorn@6.4.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: