Skip to content

Commit 26052ee

Browse files
committed
refactor: remove unused resolver functions from agnostic, webpack-like, rspack, and esbuild modules
1 parent 4569325 commit 26052ee

3 files changed

Lines changed: 7 additions & 113 deletions

File tree

packages/tree-shaking-plugin/src/__tests__/core/resolution-and-module-access.test.ts

Lines changed: 5 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ createAPIClient().pets.getPets.useQuery();
508508
}
509509
});
510510

511-
it('uses module access from options by default when creating a transform state', async () => {
511+
it('uses explicit module access when creating a transform state', async () => {
512512
const fixture = await createFixture();
513513
const sourceFile = path.join(fixture, 'src/App.tsx');
514514
const fixtureModuleAccess = createFixtureModuleAccess(fixture);
@@ -538,10 +538,10 @@ export function App() {
538538
},
539539
},
540540
],
541-
moduleAccess: {
542-
resolve: fixtureModuleAccess.resolve,
543-
load,
544-
},
541+
},
542+
{
543+
resolve: fixtureModuleAccess.resolve,
544+
load,
545545
}
546546
);
547547

@@ -697,93 +697,6 @@ export function App() {
697697
}
698698
});
699699

700-
it('supports a legacy resolver 4th argument together with module access load options', async () => {
701-
const fixture = await createFixture();
702-
const sourceFile = path.join(fixture, 'src/App.tsx');
703-
const fixtureModuleAccess = createFixtureModuleAccess(fixture);
704-
const load = vi.fn(fixtureModuleAccess.load);
705-
706-
const result = await transformQraftTreeShakingImpl(
707-
`
708-
import { createAPIClient } from './api';
709-
710-
const api = createAPIClient();
711-
712-
export function App() {
713-
return api.pets.getPets.useQuery();
714-
}
715-
`,
716-
sourceFile,
717-
{
718-
entrypoints: [
719-
{
720-
kind: 'clientFactory',
721-
factory: {
722-
exportName: 'createAPIClient',
723-
moduleSpecifier: './api',
724-
},
725-
reactContext: {
726-
exportName: 'APIClientContext',
727-
},
728-
},
729-
],
730-
moduleAccess: {
731-
load,
732-
},
733-
},
734-
fixtureModuleAccess.resolve
735-
);
736-
737-
expect(result?.code).toContain('api_pets_getPets.useQuery()');
738-
expect(load).toHaveBeenCalledWith(path.join(fixture, 'src/api/index.ts'));
739-
});
740-
741-
it('prefers module access resolve from options over a conflicting legacy resolver 4th argument', async () => {
742-
const fixture = await createFixture();
743-
const sourceFile = path.join(fixture, 'src/App.tsx');
744-
const fixtureModuleAccess = createFixtureModuleAccess(fixture);
745-
const load = vi.fn(fixtureModuleAccess.load);
746-
const legacyResolver = vi.fn(async () => {
747-
throw new Error('legacy resolver should not be called');
748-
});
749-
750-
const result = await transformQraftTreeShakingImpl(
751-
`
752-
import { createAPIClient } from './api';
753-
754-
const api = createAPIClient();
755-
756-
export function App() {
757-
return api.pets.getPets.useQuery();
758-
}
759-
`,
760-
sourceFile,
761-
{
762-
entrypoints: [
763-
{
764-
kind: 'clientFactory',
765-
factory: {
766-
exportName: 'createAPIClient',
767-
moduleSpecifier: './api',
768-
},
769-
reactContext: {
770-
exportName: 'APIClientContext',
771-
},
772-
},
773-
],
774-
moduleAccess: {
775-
resolve: fixtureModuleAccess.resolve,
776-
load,
777-
},
778-
},
779-
legacyResolver
780-
);
781-
782-
expect(result?.code).toContain('api_pets_getPets.useQuery()');
783-
expect(legacyResolver).not.toHaveBeenCalled();
784-
expect(load).toHaveBeenCalledWith(path.join(fixture, 'src/api/index.ts'));
785-
});
786-
787700
it('does not match a same-named import that resolves to a different module', async () => {
788701
const fixture = await createFixture();
789702
const sourceFile = path.join(fixture, 'src/App.tsx');

packages/tree-shaking-plugin/src/core.ts

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import type {
99
import type { SourceFilterOptions } from './lib/transform/source-gate.js';
1010
import * as generateModule from '@babel/generator';
1111
import { resolveDefaultExport } from './lib/interop/resolve-default-export.js';
12-
import { createAgnosticModuleAccess } from './lib/resolvers/agnostic.js';
1312
import { normalizeEntrypoints } from './lib/transform/entrypoints.js';
1413
import { type GeneratedMetadataCache } from './lib/transform/generated-metadata.js';
1514
import { applyTransformMutations } from './lib/transform/mutate.js';
@@ -78,32 +77,18 @@ type GenerateFn = (typeof import('@babel/generator'))['default'];
7877
type GeneratorOptions = Omit<BabelGeneratorOptions, 'inputSourceMap'> & {
7978
inputSourceMap?: SourceMapInput;
8079
};
81-
type QraftModuleAccessInput = QraftModuleAccess | QraftResolver;
8280

8381
const generate = resolveDefaultExport<GenerateFn>(generateModule);
8482

8583
export async function transformQraftTreeShaking(
8684
code: string,
8785
id: string,
8886
options: QraftTreeShakeOptions,
89-
moduleAccessOrResolver?: QraftModuleAccessInput,
87+
moduleAccess: QraftModuleAccess,
9088
inputSourceMap?: SourceMapInput,
9189
generatedMetadataCache?: GeneratedMetadataCache,
9290
sourceFilters?: SourceFilterOptions
9391
) {
94-
const moduleAccess =
95-
moduleAccessOrResolver === undefined
96-
? createAgnosticModuleAccess({
97-
resolve: options.moduleAccess?.resolve ?? options.resolve,
98-
load: options.moduleAccess?.load,
99-
})
100-
: typeof moduleAccessOrResolver === 'function'
101-
? createAgnosticModuleAccess({
102-
resolve: options.moduleAccess?.resolve ?? moduleAccessOrResolver,
103-
load: options.moduleAccess?.load,
104-
})
105-
: moduleAccessOrResolver;
106-
10792
const entrypoints = normalizeEntrypoints(options);
10893
if (
10994
!shouldInspectSource({

packages/tree-shaking-plugin/src/lib/transform/state.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import { parse } from '@babel/parser';
2424
import * as traverseModule from '@babel/traverse';
2525
import * as t from '@babel/types';
2626
import { resolveDefaultExport } from '../interop/resolve-default-export.js';
27-
import { createAgnosticModuleAccess } from '../resolvers/agnostic.js';
2827
import { createTraceableQraftModuleAccess } from '../resolvers/common.js';
2928
import {
3029
getStaticMemberPath,
@@ -137,10 +136,7 @@ export async function createTransformState(
137136
code: string,
138137
id: string,
139138
options: QraftTreeShakeOptions,
140-
moduleAccess: QraftModuleAccess = createAgnosticModuleAccess({
141-
resolve: options.moduleAccess?.resolve ?? options.resolve,
142-
load: options.moduleAccess?.load,
143-
}),
139+
moduleAccess: QraftModuleAccess,
144140
generatedMetadataCache?: GeneratedMetadataCache
145141
): Promise<TransformState> {
146142
const traceableModuleAccess = createTraceableQraftModuleAccess(moduleAccess);

0 commit comments

Comments
 (0)