Commit 2886deb
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
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
0 commit comments