diff --git a/.eslintrc.js b/.eslintrc.js index 4a501ad0045..2517dd75e0e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -19,7 +19,8 @@ module.exports = { '!/test/*.js', '!/test/*/*.js', '/test/node_modules/*.*', - '!/test/*/samples/**/_config.js' + '!/test/*/samples/**/_config.js', + '!/test/*/samples/**/rollup.config.js' ], overrides: [ { diff --git a/src/utils/hookActions.ts b/src/utils/hookActions.ts index 06282ae2822..e9f3a38b571 100644 --- a/src/utils/hookActions.ts +++ b/src/utils/hookActions.ts @@ -23,6 +23,12 @@ function formatAction([pluginName, hookName, args]: [string, string, Parameters< case 'transform': action += ` ${s(args[1])}`; break; + case 'shouldTransformCachedModule': + action += ` ${s((args[0] as { id: string }).id)}`; + break; + case 'moduleParsed': + action += ` ${s((args[0] as { id: string }).id)}`; + break; } return action; } @@ -34,6 +40,6 @@ process.on('exit', () => { err += formatAction(action) + '\n'; } console.error('%s', err); - process.exit(1); + process.exitCode = 1; } }); diff --git a/test/cli/samples/config-async-function/rollup.config.js b/test/cli/samples/config-async-function/rollup.config.js index 49cf552519d..5507bf729ea 100644 --- a/test/cli/samples/config-async-function/rollup.config.js +++ b/test/cli/samples/config-async-function/rollup.config.js @@ -3,5 +3,5 @@ export default async () => ({ output: { format: 'cjs', exports: 'auto' - }, + } }); diff --git a/test/cli/samples/config-cwd-case-insensitive/rollup.config.js b/test/cli/samples/config-cwd-case-insensitive/rollup.config.js index e35390aa642..f39a8930bd4 100644 --- a/test/cli/samples/config-cwd-case-insensitive/rollup.config.js +++ b/test/cli/samples/config-cwd-case-insensitive/rollup.config.js @@ -1,11 +1,9 @@ -var replace = require( '@rollup/plugin-replace' ); +var replace = require('@rollup/plugin-replace'); module.exports = { input: 'main.js', output: { format: 'cjs' }, - plugins: [ - replace( { preventAssignment: true, 'ANSWER': 42 } ) - ] + plugins: [replace({ preventAssignment: true, ANSWER: 42 })] }; diff --git a/test/cli/samples/config-defineConfig-cjs/rollup.config.js b/test/cli/samples/config-defineConfig-cjs/rollup.config.js index 2827d477764..6131769bef9 100644 --- a/test/cli/samples/config-defineConfig-cjs/rollup.config.js +++ b/test/cli/samples/config-defineConfig-cjs/rollup.config.js @@ -1,8 +1,8 @@ -const { defineConfig } = require("../../../../dist/rollup"); +const { defineConfig } = require('../../../../dist/rollup'); module.exports = defineConfig({ input: 'main.js', output: { format: 'cjs' - }, + } }); diff --git a/test/cli/samples/config-env-multiple/rollup.config.js b/test/cli/samples/config-env-multiple/rollup.config.js index b0d1771f6ff..3c329a3adcb 100644 --- a/test/cli/samples/config-env-multiple/rollup.config.js +++ b/test/cli/samples/config-env-multiple/rollup.config.js @@ -1,4 +1,4 @@ -var replace = require( '@rollup/plugin-replace' ); +var replace = require('@rollup/plugin-replace'); module.exports = { input: 'main.js', @@ -6,12 +6,12 @@ module.exports = { format: 'cjs' }, plugins: [ - replace( { + replace({ preventAssignment: true, __ENVIRONMENT__: process.env.PRODUCTION ? 'production' : 'development', __FOO__: process.env.FOO, __SECOND__: process.env.SECOND, __KEY__: process.env.KEY - } ) + }) ] }; diff --git a/test/cli/samples/config-env/rollup.config.js b/test/cli/samples/config-env/rollup.config.js index eacce176d32..6f03b85644f 100644 --- a/test/cli/samples/config-env/rollup.config.js +++ b/test/cli/samples/config-env/rollup.config.js @@ -1,4 +1,4 @@ -var replace = require( '@rollup/plugin-replace' ); +var replace = require('@rollup/plugin-replace'); module.exports = { input: 'main.js', @@ -6,11 +6,11 @@ module.exports = { format: 'cjs' }, plugins: [ - replace( { + replace({ preventAssignment: true, __ENVIRONMENT__: process.env.PRODUCTION ? 'production' : 'development', __FOO__: process.env.FOO, __HOST__: process.env.HOST - } ) + }) ] }; diff --git a/test/cli/samples/config-es6/rollup.config.js b/test/cli/samples/config-es6/rollup.config.js index 3906875fdd5..1c845e5a830 100644 --- a/test/cli/samples/config-es6/rollup.config.js +++ b/test/cli/samples/config-es6/rollup.config.js @@ -1,13 +1,11 @@ import replace from '@rollup/plugin-replace'; -export const ignoresNonDefaultExports = true +export const ignoresNonDefaultExports = true; export default { input: 'main.js', output: { format: 'cjs' }, - plugins: [ - replace( { preventAssignment: true, 'ANSWER': 42 } ) - ] + plugins: [replace({ preventAssignment: true, ANSWER: 42 })] }; diff --git a/test/cli/samples/config-external-function/rollup.config.js b/test/cli/samples/config-external-function/rollup.config.js index 778569aab08..1e7cd7af787 100644 --- a/test/cli/samples/config-external-function/rollup.config.js +++ b/test/cli/samples/config-external-function/rollup.config.js @@ -1,20 +1,20 @@ import assert from 'assert'; import { resolve } from 'path'; -var config = resolve( './_config.js' ); +var config = resolve('./_config.js'); export default { input: 'main.js', output: { format: 'cjs' }, - external: function ( id ) { + external(id) { return id === config; }, plugins: [ { - load: function ( id ) { - assert.notEqual( id, config ); + load(id) { + assert.notEqual(id, config); } } ] diff --git a/test/cli/samples/config-external/rollup.config.js b/test/cli/samples/config-external/rollup.config.js index 37705b99853..244001841f4 100644 --- a/test/cli/samples/config-external/rollup.config.js +++ b/test/cli/samples/config-external/rollup.config.js @@ -1,18 +1,18 @@ import assert from 'assert'; import { resolve } from 'path'; -var config = resolve( './_config.js' ); +var config = resolve('./_config.js'); export default { input: 'main.js', output: { format: 'cjs' }, - external: [ 'assert', config ], + external: ['assert', config], plugins: [ { - load: function ( id ) { - assert.notEqual( id, config ); + load(id) { + assert.notEqual(id, config); } } ] diff --git a/test/cli/samples/config-function/rollup.config.js b/test/cli/samples/config-function/rollup.config.js index 1e5fd1991f5..a5d719a4d9f 100644 --- a/test/cli/samples/config-function/rollup.config.js +++ b/test/cli/samples/config-function/rollup.config.js @@ -11,8 +11,6 @@ export default commandOptions => { onwarn(warning) { throw new Error(`Unexpected warning: ${warning.message}`); }, - plugins: [ - replace( { preventAssignment: true, 'COMMAND_OPTIONS': JSON.stringify(commandOptions) } ) - ] + plugins: [replace({ preventAssignment: true, COMMAND_OPTIONS: JSON.stringify(commandOptions) })] }; }; diff --git a/test/cli/samples/config-json/rollup.config.js b/test/cli/samples/config-json/rollup.config.js index 1247d542014..b1bc91e5e0f 100644 --- a/test/cli/samples/config-json/rollup.config.js +++ b/test/cli/samples/config-json/rollup.config.js @@ -6,7 +6,5 @@ module.exports = { output: { format: 'cjs' }, - plugins: [ - replace( { preventAssignment: true, '__VERSION__': pkg.version } ) - ] + plugins: [replace({ preventAssignment: true, __VERSION__: pkg.version })] }; diff --git a/test/cli/samples/config-multiple-getfilename/rollup.config.js b/test/cli/samples/config-multiple-getfilename/rollup.config.js index bbce2e4c07d..b6395b304b5 100644 --- a/test/cli/samples/config-multiple-getfilename/rollup.config.js +++ b/test/cli/samples/config-multiple-getfilename/rollup.config.js @@ -11,21 +11,21 @@ export default { this.emitFile({ type: 'asset', fileName: `${options.format}.txt`, - source: this.getFileName(fileReference), + source: this.getFileName(fileReference) }); - }, + } }, output: [ { format: 'es', dir: '_actual', - entryFileNames: 'es-[name].js', + entryFileNames: 'es-[name].js' }, { format: 'cjs', dir: '_actual', entryFileNames: 'cjs-[name].js', exports: 'auto' - }, - ], + } + ] }; diff --git a/test/cli/samples/config-multiple-source-maps/rollup.config.js b/test/cli/samples/config-multiple-source-maps/rollup.config.js index db2092f239e..8aac1159fd3 100644 --- a/test/cli/samples/config-multiple-source-maps/rollup.config.js +++ b/test/cli/samples/config-multiple-source-maps/rollup.config.js @@ -5,7 +5,7 @@ export default { format: 'cjs', dir: '_actual', entryFileNames: '[name]-[format].js', - sourcemap: true, + sourcemap: true }, { format: 'es', diff --git a/test/cli/samples/config-no-output/rollup.config.js b/test/cli/samples/config-no-output/rollup.config.js index deb82a90ffe..d804b11cdfc 100644 --- a/test/cli/samples/config-no-output/rollup.config.js +++ b/test/cli/samples/config-no-output/rollup.config.js @@ -3,4 +3,4 @@ export default { output: { format: 'es' } -}; \ No newline at end of file +}; diff --git a/test/cli/samples/config-override/rollup.config.js b/test/cli/samples/config-override/rollup.config.js index 5fad06b88e4..c72b224a7db 100644 --- a/test/cli/samples/config-override/rollup.config.js +++ b/test/cli/samples/config-override/rollup.config.js @@ -5,7 +5,5 @@ export default { output: { format: 'amd' }, - plugins: [ - replace( { preventAssignment: true, 'ANSWER': 42 } ) - ] + plugins: [replace({ preventAssignment: true, ANSWER: 42 })] }; diff --git a/test/cli/samples/config-true/rollup.config.js b/test/cli/samples/config-true/rollup.config.js index 93f903216fb..dee04a33fb1 100644 --- a/test/cli/samples/config-true/rollup.config.js +++ b/test/cli/samples/config-true/rollup.config.js @@ -5,7 +5,5 @@ export default { output: { format: 'cjs' }, - plugins: [ - replace( { preventAssignment: true, 'ANSWER': 42 } ) - ] + plugins: [replace({ preventAssignment: true, ANSWER: 42 })] }; diff --git a/test/cli/samples/config/rollup.config.js b/test/cli/samples/config/rollup.config.js index e35390aa642..f39a8930bd4 100644 --- a/test/cli/samples/config/rollup.config.js +++ b/test/cli/samples/config/rollup.config.js @@ -1,11 +1,9 @@ -var replace = require( '@rollup/plugin-replace' ); +var replace = require('@rollup/plugin-replace'); module.exports = { input: 'main.js', output: { format: 'cjs' }, - plugins: [ - replace( { preventAssignment: true, 'ANSWER': 42 } ) - ] + plugins: [replace({ preventAssignment: true, ANSWER: 42 })] }; diff --git a/test/cli/samples/custom-frame-with-pos/rollup.config.js b/test/cli/samples/custom-frame-with-pos/rollup.config.js index 16a980820f6..59eaaf135a6 100644 --- a/test/cli/samples/custom-frame-with-pos/rollup.config.js +++ b/test/cli/samples/custom-frame-with-pos/rollup.config.js @@ -10,9 +10,9 @@ module.exports = { err.frame = 'custom code frame'; this.error(err, { line: 1, - column: 5, + column: 5 }); } - }, + } ] }; diff --git a/test/cli/samples/custom-frame/rollup.config.js b/test/cli/samples/custom-frame/rollup.config.js index dcf59c3105a..b68cc3d29b9 100644 --- a/test/cli/samples/custom-frame/rollup.config.js +++ b/test/cli/samples/custom-frame/rollup.config.js @@ -10,6 +10,6 @@ module.exports = { err.frame = 'custom code frame'; this.error(err); } - }, + } ] }; diff --git a/test/cli/samples/emit-file-multiple-dirs/rollup.config.js b/test/cli/samples/emit-file-multiple-dirs/rollup.config.js index 416e64898e3..590fadf49c3 100644 --- a/test/cli/samples/emit-file-multiple-dirs/rollup.config.js +++ b/test/cli/samples/emit-file-multiple-dirs/rollup.config.js @@ -1,18 +1,20 @@ export default { - input: "main.js", - output: [ - { - dir: "_actual/dist1", - format: "cjs" - }, - { - dir: "_actual/dist2", - format: "es" - } - ], - plugins: [{ - generateBundle() { - this.emitFile({type: "asset", fileName: "myfile", source: "abc"}) - } - }] -} + input: 'main.js', + output: [ + { + dir: '_actual/dist1', + format: 'cjs' + }, + { + dir: '_actual/dist2', + format: 'es' + } + ], + plugins: [ + { + generateBundle() { + this.emitFile({ type: 'asset', fileName: 'myfile', source: 'abc' }); + } + } + ] +}; diff --git a/test/cli/samples/generated-code-preset-override/rollup.config.js b/test/cli/samples/generated-code-preset-override/rollup.config.js index 5de683e396e..e58de8bb6b5 100644 --- a/test/cli/samples/generated-code-preset-override/rollup.config.js +++ b/test/cli/samples/generated-code-preset-override/rollup.config.js @@ -8,4 +8,4 @@ export default { reservedNamesAsProps: false } } -} \ No newline at end of file +}; diff --git a/test/cli/samples/merge-deprecations/rollup.config.js b/test/cli/samples/merge-deprecations/rollup.config.js index 2bd3ede6339..458f63928ca 100644 --- a/test/cli/samples/merge-deprecations/rollup.config.js +++ b/test/cli/samples/merge-deprecations/rollup.config.js @@ -1,4 +1,4 @@ -var replace = require( '@rollup/plugin-replace' ); +var replace = require('@rollup/plugin-replace'); module.exports = { entry: 'main.js', @@ -9,7 +9,5 @@ module.exports = { file: '_actual/bundle2.js', format: 'es' }, - plugins: [ - replace( { preventAssignment: true, 'ANSWER': 42 } ) - ] + plugins: [replace({ preventAssignment: true, ANSWER: 42 })] }; diff --git a/test/cli/samples/multiple-configs/rollup.config.js b/test/cli/samples/multiple-configs/rollup.config.js index 3b14b96a934..268a9957a5e 100644 --- a/test/cli/samples/multiple-configs/rollup.config.js +++ b/test/cli/samples/multiple-configs/rollup.config.js @@ -1,20 +1,25 @@ -export default [{ - input: 'main.js', - output: { - file: '_actual/bundle1.js', - format: 'cjs', - exports: 'auto' - } -}, { - input: 'main.js', - plugins: [{ - resolveId(id) { - throw new Error("Unexpected Exception"); +export default [ + { + input: 'main.js', + output: { + file: '_actual/bundle1.js', + format: 'cjs', + exports: 'auto' + } + }, + { + input: 'main.js', + plugins: [ + { + resolveId(id) { + throw new Error('Unexpected Exception'); + } + } + ], + output: { + file: '_actual/bundle2.js', + format: 'cjs', + exports: 'auto' } - }], - output: { - file: '_actual/bundle2.js', - format: 'cjs', - exports: 'auto' } -}]; +]; diff --git a/test/cli/samples/paths-output-option/rollup.config.js b/test/cli/samples/paths-output-option/rollup.config.js index b8841169924..e4efe603e4f 100644 --- a/test/cli/samples/paths-output-option/rollup.config.js +++ b/test/cli/samples/paths-output-option/rollup.config.js @@ -4,7 +4,7 @@ module.exports = { output: { format: 'cjs', paths: { - 'foo': 'bar' + foo: 'bar' }, interop: false } diff --git a/test/cli/samples/plugin/advanced-esm/rollup.config.js b/test/cli/samples/plugin/advanced-esm/rollup.config.js index f2db773934b..fa98304fac1 100644 --- a/test/cli/samples/plugin/advanced-esm/rollup.config.js +++ b/test/cli/samples/plugin/advanced-esm/rollup.config.js @@ -2,9 +2,7 @@ const buble = require('@rollup/plugin-buble'); export default { input: 'main.js', - plugins: [ - buble() - ], + plugins: [buble()], output: [ { file: '_actual/cjs.js', diff --git a/test/cli/samples/plugin/advanced/rollup.config.js b/test/cli/samples/plugin/advanced/rollup.config.js index f2db773934b..fa98304fac1 100644 --- a/test/cli/samples/plugin/advanced/rollup.config.js +++ b/test/cli/samples/plugin/advanced/rollup.config.js @@ -2,9 +2,7 @@ const buble = require('@rollup/plugin-buble'); export default { input: 'main.js', - plugins: [ - buble() - ], + plugins: [buble()], output: [ { file: '_actual/cjs.js', diff --git a/test/cli/samples/plugin/named-export/rollup.config.js b/test/cli/samples/plugin/named-export/rollup.config.js index f2db773934b..fa98304fac1 100644 --- a/test/cli/samples/plugin/named-export/rollup.config.js +++ b/test/cli/samples/plugin/named-export/rollup.config.js @@ -2,9 +2,7 @@ const buble = require('@rollup/plugin-buble'); export default { input: 'main.js', - plugins: [ - buble() - ], + plugins: [buble()], output: [ { file: '_actual/cjs.js', diff --git a/test/cli/samples/silent-onwarn/rollup.config.js b/test/cli/samples/silent-onwarn/rollup.config.js index 051e24861d9..1c102c32c66 100644 --- a/test/cli/samples/silent-onwarn/rollup.config.js +++ b/test/cli/samples/silent-onwarn/rollup.config.js @@ -16,5 +16,4 @@ export default { assert.strictEqual(warnings[0].code, 'CIRCULAR_DEPENDENCY'); } } - -} +}; diff --git a/test/cli/samples/symlinked-config/rollup.config.symlinked b/test/cli/samples/symlinked-config/rollup.config.symlinked index bac35929110..dee04a33fb1 100644 --- a/test/cli/samples/symlinked-config/rollup.config.symlinked +++ b/test/cli/samples/symlinked-config/rollup.config.symlinked @@ -5,7 +5,5 @@ export default { output: { format: 'cjs' }, - plugins: [ - replace({ preventAssignment: true, 'ANSWER': 42 }) - ] + plugins: [replace({ preventAssignment: true, ANSWER: 42 })] }; diff --git a/test/cli/samples/treeshake-preset-override/rollup.config.js b/test/cli/samples/treeshake-preset-override/rollup.config.js index d905c343e65..88d41643ba5 100644 --- a/test/cli/samples/treeshake-preset-override/rollup.config.js +++ b/test/cli/samples/treeshake-preset-override/rollup.config.js @@ -7,4 +7,4 @@ export default { output: { format: 'es' } -} \ No newline at end of file +}; diff --git a/test/cli/samples/unfulfilled-hook-actions-error/_config.js b/test/cli/samples/unfulfilled-hook-actions-error/_config.js new file mode 100644 index 00000000000..93b50f6fb1b --- /dev/null +++ b/test/cli/samples/unfulfilled-hook-actions-error/_config.js @@ -0,0 +1,21 @@ +const assert = require('assert'); +const { assertIncludes } = require('../../../utils.js'); + +module.exports = { + description: 'does not swallow errors on unfulfilled hooks actions', + minNodeVersion: 13, + command: 'node build.mjs', + after(err) { + // exit code check has to be here as error(err) is only called upon failure + assert.strictEqual(err && err.code, 1); + }, + error() { + // do not abort test upon error + return true; + }, + stderr(stderr) { + assertIncludes(stderr, '[!] Error: unfinished hook action(s) on exit'); + assertIncludes(stderr, '(test) transform'); + assertIncludes(stderr, 'Error: Error must be displayed.'); + } +}; diff --git a/test/cli/samples/unfulfilled-hook-actions-error/_expected.js b/test/cli/samples/unfulfilled-hook-actions-error/_expected.js new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/cli/samples/unfulfilled-hook-actions-error/a.js b/test/cli/samples/unfulfilled-hook-actions-error/a.js new file mode 100644 index 00000000000..8609d075540 --- /dev/null +++ b/test/cli/samples/unfulfilled-hook-actions-error/a.js @@ -0,0 +1 @@ +console.log('a'); diff --git a/test/cli/samples/unfulfilled-hook-actions-error/b.js b/test/cli/samples/unfulfilled-hook-actions-error/b.js new file mode 100644 index 00000000000..eeb313a0347 --- /dev/null +++ b/test/cli/samples/unfulfilled-hook-actions-error/b.js @@ -0,0 +1 @@ +console.log('b'); diff --git a/test/cli/samples/unfulfilled-hook-actions-error/build.mjs b/test/cli/samples/unfulfilled-hook-actions-error/build.mjs new file mode 100644 index 00000000000..4d7bdff4edb --- /dev/null +++ b/test/cli/samples/unfulfilled-hook-actions-error/build.mjs @@ -0,0 +1,23 @@ +import { rollup } from 'rollup'; + +let resolveA; +const waitForA = new Promise(resolve => (resolveA = resolve)); + +// The error must not be swallowed when using top-level-await +await rollup({ + input: './index.js', + plugins: [ + { + name: 'test', + transform(code, id) { + if (id.endsWith('a.js')) { + resolveA(); + return new Promise(() => {}); + } + if (id.endsWith('b.js')) { + return waitForA.then(() => Promise.reject(new Error('Error must be displayed.'))) + } + } + } + ] +}); diff --git a/test/cli/samples/unfulfilled-hook-actions-error/c.js b/test/cli/samples/unfulfilled-hook-actions-error/c.js new file mode 100644 index 00000000000..c7857d5f484 --- /dev/null +++ b/test/cli/samples/unfulfilled-hook-actions-error/c.js @@ -0,0 +1 @@ +console.log('c'); diff --git a/test/cli/samples/unfulfilled-hook-actions-error/index.js b/test/cli/samples/unfulfilled-hook-actions-error/index.js new file mode 100644 index 00000000000..35468cc3f20 --- /dev/null +++ b/test/cli/samples/unfulfilled-hook-actions-error/index.js @@ -0,0 +1,3 @@ +import './a.js'; +import './b.js'; +import './c.js'; diff --git a/test/cli/samples/unfulfilled-hook-actions/_config.js b/test/cli/samples/unfulfilled-hook-actions/_config.js index 7336c290a29..7aa6f14577b 100644 --- a/test/cli/samples/unfulfilled-hook-actions/_config.js +++ b/test/cli/samples/unfulfilled-hook-actions/_config.js @@ -3,12 +3,12 @@ const { assertIncludes } = require('../../../utils.js'); module.exports = { description: 'show errors with non-zero exit code for unfulfilled async plugin actions on exit', - command: 'rollup main.js -p ./buggy-plugin.js --silent', + command: 'rollup -c --silent', after(err) { // exit code check has to be here as error(err) is only called upon failure assert.strictEqual(err && err.code, 1); }, - error(err) { + error() { // do not abort test upon error return true; }, @@ -19,6 +19,7 @@ module.exports = { assertIncludes(stderr, '(buggy-plugin) resolveId "./c.js" "main.js"'); assertIncludes(stderr, '(buggy-plugin) load "./b.js"'); assertIncludes(stderr, '(buggy-plugin) transform "./a.js"'); - assertIncludes(stderr, '(buggy-plugin) moduleParsed'); + assertIncludes(stderr, '(buggy-plugin) moduleParsed "./d.js"'); + assertIncludes(stderr, '(buggy-plugin) shouldTransformCachedModule "./e.js"'); } }; diff --git a/test/cli/samples/unfulfilled-hook-actions/buggy-plugin.js b/test/cli/samples/unfulfilled-hook-actions/buggy-plugin.js deleted file mode 100644 index 4666e3d1e6e..00000000000 --- a/test/cli/samples/unfulfilled-hook-actions/buggy-plugin.js +++ /dev/null @@ -1,33 +0,0 @@ -var path = require('path'); - -function relative(id) { - if (id[0] != '/') return id; - if (id[0] != '\\') return id; - return './' + path.relative(process.cwd(), id); -} - -module.exports = function() { - return { - name: 'buggy-plugin', - resolveId(id) { - if (id.includes('\0')) return; - - // this action will never resolve or reject - if (id.endsWith('c.js')) return new Promise(() => {}); - - return relative(id); - }, - load(id) { - // this action will never resolve or reject - if (id.endsWith('b.js')) return new Promise(() => {}); - }, - transform(code, id) { - // this action will never resolve or reject - if (id.endsWith('a.js')) return new Promise(() => {}); - }, - moduleParsed(mod) { - // this action will never resolve or reject - if (mod.id.endsWith('d.js')) return new Promise(() => {}); - } - }; -} diff --git a/test/cli/samples/unfulfilled-hook-actions/e.js b/test/cli/samples/unfulfilled-hook-actions/e.js new file mode 100644 index 00000000000..fe97ae732c1 --- /dev/null +++ b/test/cli/samples/unfulfilled-hook-actions/e.js @@ -0,0 +1 @@ +console.log('e'); diff --git a/test/cli/samples/unfulfilled-hook-actions/main.js b/test/cli/samples/unfulfilled-hook-actions/main.js index f0d40cba75c..4240ab41f0c 100644 --- a/test/cli/samples/unfulfilled-hook-actions/main.js +++ b/test/cli/samples/unfulfilled-hook-actions/main.js @@ -2,4 +2,5 @@ import './a.js'; import './b.js'; import './c.js'; import './d.js'; +import './e.js'; console.log('main'); diff --git a/test/cli/samples/unfulfilled-hook-actions/rollup.config.js b/test/cli/samples/unfulfilled-hook-actions/rollup.config.js new file mode 100644 index 00000000000..4ef13e37ca8 --- /dev/null +++ b/test/cli/samples/unfulfilled-hook-actions/rollup.config.js @@ -0,0 +1,65 @@ +const path = require('path'); +const acorn = require('acorn'); + +function relative(id) { + if (id[0] !== '/') return id; + if (id[0] !== '\\') return id; + return './' + path.relative(process.cwd(), id); +} + +const moduleECode = "console.log('e');\n"; + +module.exports = { + input: 'main.js', + cache: { + modules: [ + { + id: './e.js', + ast: acorn.parse(moduleECode, { + ecmaVersion: 6, + sourceType: 'module' + }), + code: moduleECode, + dependencies: [], + customTransformCache: false, + originalCode: moduleECode, + originalSourcemap: null, + resolvedIds: {}, + sourcemapChain: [], + transformDependencies: [] + } + ] + }, + plugins: [ + { + name: 'buggy-plugin', + resolveId(id) { + if (id.includes('\0')) return; + + // this action will never resolve or reject + if (id.endsWith('c.js')) return new Promise(() => {}); + + return relative(id); + }, + load(id) { + // this action will never resolve or reject + if (id.endsWith('b.js')) return new Promise(() => {}); + }, + transform(code, id) { + // this action will never resolve or reject + if (id.endsWith('a.js')) return new Promise(() => {}); + }, + moduleParsed({ id }) { + // this action will never resolve or reject + if (id.endsWith('d.js')) return new Promise(() => {}); + }, + shouldTransformCachedModule({ id }) { + // this action will never resolve or reject + if (id.endsWith('e.js')) return new Promise(() => {}); + } + } + ], + output: { + format: 'es' + } +}; diff --git a/test/cli/samples/warn-unknown-options/rollup.config.js b/test/cli/samples/warn-unknown-options/rollup.config.js index 7ce562965fd..1370a2b2159 100644 --- a/test/cli/samples/warn-unknown-options/rollup.config.js +++ b/test/cli/samples/warn-unknown-options/rollup.config.js @@ -1,5 +1,5 @@ -var replace = require('@rollup/plugin-replace'); var assert = require('assert'); +var replace = require('@rollup/plugin-replace'); let warnings = 0; diff --git a/test/cli/samples/watch/bundle-error/rollup.config.js b/test/cli/samples/watch/bundle-error/rollup.config.js index 0c8c1cb886e..d6f089f1d52 100644 --- a/test/cli/samples/watch/bundle-error/rollup.config.js +++ b/test/cli/samples/watch/bundle-error/rollup.config.js @@ -1,7 +1,7 @@ export default { input: 'main.js', output: { - dir: "_actual", - format: "es" + dir: '_actual', + format: 'es' } }; diff --git a/test/cli/samples/watch/close-error/rollup.config.js b/test/cli/samples/watch/close-error/rollup.config.js index f115555c1e4..cdd8bdc5f4a 100644 --- a/test/cli/samples/watch/close-error/rollup.config.js +++ b/test/cli/samples/watch/close-error/rollup.config.js @@ -9,7 +9,7 @@ export default { } ], output: { - dir: "_actual", - format: "es" + dir: '_actual', + format: 'es' } }; diff --git a/test/cli/samples/watch/close-on-generate-error/rollup.config.js b/test/cli/samples/watch/close-on-generate-error/rollup.config.js index 2b5ed8843ea..17b7459115e 100644 --- a/test/cli/samples/watch/close-on-generate-error/rollup.config.js +++ b/test/cli/samples/watch/close-on-generate-error/rollup.config.js @@ -4,11 +4,11 @@ export default { { name: 'faulty-close', closeBundle() { - console.error('Bundle closed') + console.error('Bundle closed'); } } ], output: { - format: "es" + format: 'es' } }; diff --git a/test/cli/samples/watch/no-clearScreen/rollup.config.js b/test/cli/samples/watch/no-clearScreen/rollup.config.js index a171128d7c0..e9a069dccb2 100644 --- a/test/cli/samples/watch/no-clearScreen/rollup.config.js +++ b/test/cli/samples/watch/no-clearScreen/rollup.config.js @@ -3,20 +3,20 @@ export default [ input: 'main.js', output: { file: '_actual.js', - format: 'es', + format: 'es' }, watch: { - clearScreen: true, - }, + clearScreen: true + } }, { input: 'main.js', output: { file: '_actual.js', - format: 'es', + format: 'es' }, watch: { - clearScreen: false, - }, - }, + clearScreen: false + } + } ]; diff --git a/test/cli/samples/watch/no-watch-by-default/rollup.config.js b/test/cli/samples/watch/no-watch-by-default/rollup.config.js index 161653a6b43..c76705abd68 100644 --- a/test/cli/samples/watch/no-watch-by-default/rollup.config.js +++ b/test/cli/samples/watch/no-watch-by-default/rollup.config.js @@ -3,7 +3,7 @@ export default [ input: 'main.js', output: { file: '_actual.js', - format: 'es', - }, + format: 'es' + } } ]; diff --git a/test/load-config-file/samples/basic/rollup.config.js b/test/load-config-file/samples/basic/rollup.config.js index c9a778d299d..0ba62eed7c3 100644 --- a/test/load-config-file/samples/basic/rollup.config.js +++ b/test/load-config-file/samples/basic/rollup.config.js @@ -4,4 +4,4 @@ export default { file: 'my-file', format: 'es' } -} +};