Skip to content

Commit 621cf37

Browse files
committed
fix: updated run scripts
1 parent 64be874 commit 621cf37

File tree

6 files changed

+25
-26
lines changed

6 files changed

+25
-26
lines changed

types/codegen/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,5 @@ node_modules/
1212

1313
# Build outputs
1414
dist/
15+
16+
schema/complete-schema.json

types/codegen/README.md

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ This directory contains scripts and configuration for generating TypeScript and
77
The code generation process combines multiple schema files into a complete OpenAPI specification and generates both TypeScript and Java types with custom templates, import mappings, and validation.
88

99
**Running `npm run generate` will automatically generate:**
10-
- **TypeScript types** in `generated/typescript/` - Complete type definitions and runtime client
11-
- **Java model classes** in `generated/java/` - Filtered model classes for specific use cases
10+
- **TypeScript types** in `generated/typescript/` - Complete type definitions
11+
- **Java model classes** in `generated/java/` - Java model classes with custom templates
1212

1313
## Directory Structure
1414

@@ -21,7 +21,7 @@ types/codegen/
2121
│ ├── generate-complete-schema.js # Combines all schema files
2222
│ ├── post-typescript.js # TypeScript post-processing
2323
│ ├── post-test.js # Model validation script
24-
│ ├── pre-typescript.js # TypeScript pre-processing
24+
│ ├── clean.js # Cleanup utilities
2525
│ └── constants.ts # Constants to inject
2626
├── custom-templates/ # Custom Mustache templates
2727
│ ├── typescript/ # TypeScript-specific templates
@@ -45,14 +45,13 @@ types/codegen/
4545
- Conflict detection and warnings for duplicate schema names
4646

4747
### 2. Code Generation (OpenAPI Generator CLI)
48-
- **TypeScript Generator**: Generates complete TypeScript types and runtime
48+
- **TypeScript Generator**: Generates complete TypeScript types
4949
- Uses `typescript-fetch` generator with custom templates
5050
- Generates interfaces, types, and enum unions
51-
- Includes runtime API client code
52-
- **Java Generator**: Generates filtered Java model classes
53-
- Uses selective model generation via `global-property.models`
54-
- Only generates specific models needed for Java integration
51+
- **Java Generator**: Generates Java model classes
52+
- Uses custom templates for modern Java features
5553
- Targets Java 21 with modern features
54+
- Supports model filtering via `global-property.models` when needed
5655

5756
### 3. Post-Processing (`post-typescript.js`)
5857
- Processes import mappings from `openapitools.json`
@@ -94,7 +93,7 @@ npm run test:verbose
9493
The main configuration file contains detailed settings for both TypeScript and Java generators:
9594

9695
#### TypeScript Generator Settings
97-
- **Generator**: `typescript-fetch` - Generates TypeScript types with fetch-based runtime
96+
- **Generator**: `typescript-fetch` - Generates TypeScript types
9897
- **ES6 Support**: `supportsES6: true` - Modern JavaScript features
9998
- **Property Naming**: `camelCase` for both models and enums
10099
- **String Enums**: `stringEnums: true` - Generates union types instead of numeric enums
@@ -110,16 +109,16 @@ The main configuration file contains detailed settings for both TypeScript and J
110109
- **Validation**: Bean validation disabled for lighter models
111110
- **Legacy Behavior**: `legacyDiscriminatorBehavior: false` - Modern discriminator handling
112111

113-
### Model Filtering
112+
### Model Filtering (Optional)
114113

115-
Java generator uses selective model generation via `global-property.models`:
114+
Java generator supports selective model generation via `global-property.models` when needed:
116115
```json
117116
"global-property": {
118-
"models": "IconType:ContextCommandGroup:QuickActionCommand:ContextCommand:CursorPosition:FileParams:CopyFileParams:OpenFileDiffParams:ShowOpenDialogParams:ShowSaveFileDialogParams:ShowSaveFileDialogResult"
117+
"models": "IconType:ContextCommandGroup:QuickActionCommand:ContextCommand"
119118
}
120119
```
121120

122-
This generates only the specified models, making the Java output focused on specific use cases.
121+
When specified, this generates only the listed models. If omitted, all models are generated.
123122

124123
### Import Mappings
125124

@@ -176,13 +175,12 @@ Handle language-specific reserved words:
176175

177176
### TypeScript Output (`generated/typescript/`)
178177
- Complete type definitions for all schema models
179-
- Runtime API client with fetch-based implementation
180178
- Proper import statements for external dependencies
181179
- Injected constants and utilities
182180
- NPM package ready for distribution
183181

184182
### Java Output (`generated/java/`)
185-
- Selective model classes (only specified models via filtering)
183+
- Java model classes with custom templates
186184
- Java 21 compatible code
187185
- LSP4J integration for language server types
188186
- Maven/Gradle compatible structure

types/codegen/custom-templates/java/pom.mustache

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
<artifactId>maven-compiler-plugin</artifactId>
4646
<version>3.8.1</version>
4747
<configuration>
48-
<source>21</source>
49-
<target>21</target>
48+
<source>{{#sourceCompatibility}}{{sourceCompatibility}}{{/sourceCompatibility}}{{^sourceCompatibility}}21{{/sourceCompatibility}}</source>
49+
<target>{{#targetCompatibility}}{{targetCompatibility}}{{/targetCompatibility}}{{^targetCompatibility}}21{{/targetCompatibility}}</target>
5050
<fork>true</fork>
5151
<meminitial>128m</meminitial>
5252
<maxmem>512m</maxmem>
@@ -107,7 +107,7 @@
107107
<version>3.6.3</version>
108108
<configuration>
109109
<doclint>none</doclint>
110-
<source>21</source>
110+
<source>{{#sourceCompatibility}}{{sourceCompatibility}}{{/sourceCompatibility}}{{^sourceCompatibility}}21{{/sourceCompatibility}}</source>
111111
</configuration>
112112
<executions>
113113
<execution>

types/codegen/openapitools.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"additionalProperties": {
4747
"useOneOfInterfaces": true,
4848
"legacyDiscriminatorBehavior": false,
49-
"java8": false,
49+
"java8": true,
5050
"dateLibrary": "java8",
5151
"serializableModel": false,
5252
"useBeanValidation": false,

types/codegen/package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
{
2-
"name": "chat-types-generator",
2+
"name": "type-generator",
33
"version": "0.0.1",
44
"description": "Generate TypeScript defintiinons from JSON Schema using OpenAPI Generator",
55
"main": "generated/typescript/src/index.ts",
66
"scripts": {
77
"clean": "node scripts/clean.js",
8-
"generate-full-schema": "node scripts/generate-complete-schema.js",
9-
"generate": "npm run generate-full-schema && openapi-generator-cli generate && node scripts/post-typescript.js && npm run test",
8+
"process-schemas": "node scripts/generate-complete-schema.js",
9+
"generate": "npm run process-schemas && openapi-generator-cli generate && npm run post-process && npm run test",
1010
"generate:only": "openapi-generator-cli generate",
11-
"generate:no-post": "npm run generate-full-schema && openapi-generator-cli generate && node scripts/post-typescript.js",
11+
"generate:no-post": "npm run process-schemas && openapi-generator-cli generate && npm run post-process",
1212
"post-process": "node scripts/post-typescript.js",
1313
"test": "node scripts/post-test.js",
1414
"test:verbose": "node scripts/post-test.js --verbose",
1515
"test:unit": "ts-mocha -b 'tests/unit/**/*.test.js' --bail false",
16-
"test:all": "npm run test && npm run test:unit",
17-
"validate": "npm run test"
16+
"test:all": "npm run test && npm run test:unit"
1817
},
1918
"devDependencies": {
2019
"@openapitools/openapi-generator-cli": "^2.21.4",

types/codegen/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
"outDir": "dist",
88
"typeRoots": ["node_modules/@types"]
99
},
10-
"include": ["*.ts"],
10+
"include": ["**/*.ts"],
1111
"exclude": ["dist", "node_modules"]
1212
}

0 commit comments

Comments
 (0)