From ae21ad80e8821db05731ce66721ae46bc53c7a10 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 18 Feb 2022 06:46:15 +0100 Subject: [PATCH] Provide resolvedSources instead of importedIds --- src/Module.ts | 2 +- src/ModuleLoader.ts | 3 +-- src/rollup/types.d.ts | 6 ++---- test/incremental/index.js | 34 ++++++++++++++++++++-------------- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/Module.ts b/src/Module.ts index 2810451ef8e..def8d4b330c 100644 --- a/src/Module.ts +++ b/src/Module.ts @@ -708,6 +708,7 @@ export default class Module { transformFiles, ...moduleOptions }: TransformModuleJSON & { + resolvedIds?: ResolvedIdMap; transformFiles?: EmittedFile[] | undefined; }): void { this.info.code = code; @@ -785,7 +786,6 @@ export default class Module { code: this.info.code!, customTransformCache: this.customTransformCache, dependencies: Array.from(this.dependencies, getId), - dynamicDependencies: Array.from(this.dynamicDependencies, getId), id: this.id, meta: this.info.meta, moduleSideEffects: this.info.moduleSideEffects, diff --git a/src/ModuleLoader.ts b/src/ModuleLoader.ts index 3cae7127a71..9589da12e51 100644 --- a/src/ModuleLoader.ts +++ b/src/ModuleLoader.ts @@ -280,11 +280,10 @@ export class ModuleLoader { { ast: cachedModule.ast, code: cachedModule.code, - dynamicallyImportedIds: cachedModule.dynamicDependencies, id: cachedModule.id, - importedIds: cachedModule.dependencies, meta: cachedModule.meta, moduleSideEffects: cachedModule.moduleSideEffects, + resolvedSources: cachedModule.resolvedIds, syntheticNamedExports: cachedModule.syntheticNamedExports } ])) diff --git a/src/rollup/types.d.ts b/src/rollup/types.d.ts index 8081dd07934..10a8341e873 100644 --- a/src/rollup/types.d.ts +++ b/src/rollup/types.d.ts @@ -108,7 +108,6 @@ export interface TransformModuleJSON { customTransformCache: boolean; originalCode: string; originalSourcemap: ExistingDecodedSourceMap | null; - resolvedIds?: ResolvedIdMap; sourcemapChain: DecodedSourceMapOrMissing[]; transformDependencies: string[]; } @@ -116,8 +115,8 @@ export interface TransformModuleJSON { export interface ModuleJSON extends TransformModuleJSON, ModuleOptions { ast: AcornNode; dependencies: string[]; - dynamicDependencies: string[]; id: string; + resolvedIds: ResolvedIdMap; transformFiles: EmittedFile[] | undefined; } @@ -252,11 +251,10 @@ export type ShouldTransformCachedModuleHook = ( options: { ast: AcornNode; code: string; - dynamicallyImportedIds: string[]; id: string; - importedIds: string[]; meta: CustomPluginOptions; moduleSideEffects: boolean | 'no-treeshake'; + resolvedSources: ResolvedIdMap; syntheticNamedExports: boolean | string; } ) => Promise | boolean; diff --git a/test/incremental/index.js b/test/incremental/index.js index 52458478ded..3d5b6bf01b9 100644 --- a/test/incremental/index.js +++ b/test/incremental/index.js @@ -346,14 +346,7 @@ describe('incremental', () => { let shouldTransformCachedModuleCalls = 0; const transformPlugin = { - async shouldTransformCachedModule({ - ast, - id, - meta, - importedIds, - dynamicallyImportedIds, - ...other - }) { + async shouldTransformCachedModule({ ast, id, meta, resolvedSources, ...other }) { shouldTransformCachedModuleCalls++; assert.strictEqual(ast.type, 'Program'); assert.deepStrictEqual(other, { @@ -364,19 +357,32 @@ describe('incremental', () => { switch (id) { case 'foo': assert.deepStrictEqual(meta, { transform: { calls: 1, id } }); - assert.deepStrictEqual(importedIds, []); - assert.deepStrictEqual(dynamicallyImportedIds, []); + assert.deepStrictEqual(resolvedSources, { __proto__: null }); // we return promises to ensure they are awaited return Promise.resolve(false); case 'bar': assert.deepStrictEqual(meta, { transform: { calls: 1, id } }); - assert.deepStrictEqual(importedIds, []); - assert.deepStrictEqual(dynamicallyImportedIds, []); + assert.deepStrictEqual(resolvedSources, { __proto__: null }); return Promise.resolve(false); case 'entry': assert.deepStrictEqual(meta, { transform: { calls: 0, id } }); - assert.deepStrictEqual(importedIds, ['foo']); - assert.deepStrictEqual(dynamicallyImportedIds, ['bar']); + assert.deepStrictEqual(resolvedSources, { + __proto__: null, + bar: { + external: false, + id: 'bar', + meta: {}, + moduleSideEffects: true, + syntheticNamedExports: false + }, + foo: { + external: false, + id: 'foo', + meta: {}, + moduleSideEffects: true, + syntheticNamedExports: false + } + }); return Promise.resolve(true); default: throw new Error(`Unexpected id ${id}.`);