Skip to content

Commit

Permalink
remove unused request init import in generated services
Browse files Browse the repository at this point in the history
  • Loading branch information
taefi committed Aug 5, 2024
1 parent 54efbc5 commit 53601bd
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 2 deletions.
13 changes: 13 additions & 0 deletions packages/ts/generator-plugin-signals/src/SignalProcessor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ function dummy() {
),
]).transformed;

this.#removeUnusedRequestInitImports(file);

return createSourceFile(
[
...this.#dependencyManager.imports.toCode(),
Expand All @@ -116,4 +118,15 @@ function dummy() {
}
});
}

#removeUnusedRequestInitImports(file: SourceFile) {
const transformedFileText = ts.createPrinter().printFile(file);

const hasNormalEndpointCalls =
transformedFileText.includes('init?: EndpointRequestInit') && transformedFileText.includes('.call(');

if (!hasNormalEndpointCalls) {
this.#dependencyManager.imports.named.remove('@vaadin/hilla-frontend', 'EndpointRequestInit');
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ describe('SignalsPlugin', () => {
await expect(await generatedHelloWorldService.text()).toMatchSnapshot(`HelloWorldService`, import.meta.url);
});

it('removes init import if not needed', async () => {
it('removes unused request init import', async () => {
const generator = new Generator([BackbonePlugin, SignalsPlugin], {
logger: new LoggerFactory({ name: 'model-plugin-test', verbose: true }),
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { EndpointRequestInit as EndpointRequestInit_1 } from "@vaadin/hilla-frontend";
import { type NumberSignal as NumberSignal_1, NumberSignalChannel as NumberSignalChannel_1 } from "@vaadin/hilla-react-signals";
import client_1 from "./connect-client.default.js";
function counter_1(): NumberSignal_1 { return new NumberSignalChannel_1("NumberSignalService.counter", client_1).signal; }
Expand Down
12 changes: 12 additions & 0 deletions packages/ts/generator-utils/src/dependencies/ImportManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,18 @@ export class NamedImportManager extends StatementRecordManager<ImportDeclaration
return record.id;
}

remove(path: string, specifier: string): void {
const specifiers = this.#map.get(path);

if (specifiers) {
specifiers.delete(specifier);

if (specifiers.size === 0) {
this.#map.delete(path);
}
}
}

override clear(): void {
this.#map.clear();
}
Expand Down

0 comments on commit 53601bd

Please sign in to comment.