Skip to content

Commit 2886deb

Browse files
authored
release: v2.0.0 (#145)
## Summary This PR consolidates major architectural updates and improvements previously discussed and implemented in #141 and #144. It aims to achieve zero runtime dependencies and provide a modern development experience with subpath exports. ### From #141: Complete Removal of TypeScript AST Dependency - Replaced the TypeScript Compiler API (AST) with a string template-based approach for code generation. - Achieved **zero runtime dependencies** by removing the `typescript` package from `src/`. - Simplified internal logic and improved portability of the generated code. ### From #144: Support for Subpath Exports - Implemented Node.js Subpath Exports in `package.json` to allow cleaner import paths. - Updated all internal references, READMEs, and examples to use the new paths (removing the `/dist/` prefix). - Improved type resolution support in modern TypeScript environments. ## Breaking Changes & Migration Guide ### 1. Import Path Changes Subpath exports are now supported. You should remove the `/dist/` prefix from your import paths. ```diff - import * as Templates from "@himenon/openapi-typescript-code-generator/dist/templates"; - import type * as Types from "@himenon/openapi-typescript-code-generator/dist/types"; - import { TsGenerator } from "@himenon/openapi-typescript-code-generator/dist/api"; + import * as Templates from "@himenon/openapi-typescript-code-generator/templates"; + import type * as Types from "@himenon/openapi-typescript-code-generator/types"; + import { TsGenerator } from "@himenon/openapi-typescript-code-generator/api"; ``` ### 2. Type Definition Changes The `IntermediateCode` type has been simplified from a union type to a strict `string`. ```diff - // Old: string | ts.Statement - const code: Types.CodeGenerator.IntermediateCode = ts.factory.createIdentifier("..."); + // New: string + const code: Types.CodeGenerator.IntermediateCode = "const x = 1;"; ``` ### 3. Internal Factory API Overhaul The internal TypeScript AST factory wrapper (`TsGenerator.Factory`) has been replaced with a string-based factory. ```diff const factory = TsGenerator.Factory.create(); - // Old: returns ts.InterfaceDeclaration - const node = factory.InterfaceDeclaration.create({ ... }); + // New: returns string + const node = factory.InterfaceDeclaration.create({ ... }); ``` ## Changes Summary - **Refactoring:** Consolidated 44 individual factory files into a single optimized entry point. - **Documentation:** Updated README.md and docs/ja/README-ja.md to reflect the new API and import paths. ## Test Plan ```bash # Verify no typescript dependency in src/ grep -r "from \"typescript\"" src/ # Run all tests (including new snapshots and functional tests) pnpm test # Verify code generation with examples pnpm test:code:gen:class pnpm test:code:gen:function pnpm test:code:gen:currying-function ``` All tests have been verified to pass successfully in the local environment.
1 parent 3f422f4 commit 2886deb

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@himenon/openapi-typescript-code-generator",
3-
"version": "1.3.0",
3+
"version": "2.0.0",
44
"description": "OpenAPI Code Generator using Template literals.",
55
"keywords": [
66
"openapi",

0 commit comments

Comments
 (0)