Skip to content

Commit 53601bd

Browse files
committed
remove unused request init import in generated services
1 parent 54efbc5 commit 53601bd

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

packages/ts/generator-plugin-signals/src/SignalProcessor.ts

+13
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ function dummy() {
9494
),
9595
]).transformed;
9696

97+
this.#removeUnusedRequestInitImports(file);
98+
9799
return createSourceFile(
98100
[
99101
...this.#dependencyManager.imports.toCode(),
@@ -116,4 +118,15 @@ function dummy() {
116118
}
117119
});
118120
}
121+
122+
#removeUnusedRequestInitImports(file: SourceFile) {
123+
const transformedFileText = ts.createPrinter().printFile(file);
124+
125+
const hasNormalEndpointCalls =
126+
transformedFileText.includes('init?: EndpointRequestInit') && transformedFileText.includes('.call(');
127+
128+
if (!hasNormalEndpointCalls) {
129+
this.#dependencyManager.imports.named.remove('@vaadin/hilla-frontend', 'EndpointRequestInit');
130+
}
131+
}
119132
}

packages/ts/generator-plugin-signals/test/SignalsEndpoints.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ describe('SignalsPlugin', () => {
3030
await expect(await generatedHelloWorldService.text()).toMatchSnapshot(`HelloWorldService`, import.meta.url);
3131
});
3232

33-
it('removes init import if not needed', async () => {
33+
it('removes unused request init import', async () => {
3434
const generator = new Generator([BackbonePlugin, SignalsPlugin], {
3535
logger: new LoggerFactory({ name: 'model-plugin-test', verbose: true }),
3636
});

packages/ts/generator-plugin-signals/test/fixtures/NumberSignalServiceSignalOnly.snap.ts

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { EndpointRequestInit as EndpointRequestInit_1 } from "@vaadin/hilla-frontend";
21
import { type NumberSignal as NumberSignal_1, NumberSignalChannel as NumberSignalChannel_1 } from "@vaadin/hilla-react-signals";
32
import client_1 from "./connect-client.default.js";
43
function counter_1(): NumberSignal_1 { return new NumberSignalChannel_1("NumberSignalService.counter", client_1).signal; }

packages/ts/generator-utils/src/dependencies/ImportManager.ts

+12
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,18 @@ export class NamedImportManager extends StatementRecordManager<ImportDeclaration
2525
return record.id;
2626
}
2727

28+
remove(path: string, specifier: string): void {
29+
const specifiers = this.#map.get(path);
30+
31+
if (specifiers) {
32+
specifiers.delete(specifier);
33+
34+
if (specifiers.size === 0) {
35+
this.#map.delete(path);
36+
}
37+
}
38+
}
39+
2840
override clear(): void {
2941
this.#map.clear();
3042
}

0 commit comments

Comments
 (0)