@ahoo-wang/fetcher-generator 2.11.3 → 2.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.cjs +15 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +581 -559
- package/dist/index.js.map +1 -1
- package/dist/model/index.d.ts +1 -0
- package/dist/model/index.d.ts.map +1 -1
- package/dist/model/modelGenerator.d.ts +1 -8
- package/dist/model/modelGenerator.d.ts.map +1 -1
- package/dist/model/typeGenerator.d.ts +28 -0
- package/dist/model/typeGenerator.d.ts.map +1 -0
- package/dist/utils/schemas.d.ts +21 -9
- package/dist/utils/schemas.d.ts.map +1 -1
- package/dist/utils/sourceFiles.d.ts +4 -2
- package/dist/utils/sourceFiles.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/model/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
|
@@ -30,8 +30,6 @@ export declare class ModelGenerator implements Generator {
|
|
|
30
30
|
* Generates a model for a specific schema key.
|
|
31
31
|
* Processes enums, objects, unions, and type aliases in order.
|
|
32
32
|
*
|
|
33
|
-
* @param schemaKey - The key of the schema to generate
|
|
34
|
-
* @param schema - The schema definition
|
|
35
33
|
*
|
|
36
34
|
* @remarks
|
|
37
35
|
* The generation process follows this order:
|
|
@@ -40,11 +38,6 @@ export declare class ModelGenerator implements Generator {
|
|
|
40
38
|
* 3. Union processing
|
|
41
39
|
* 4. Type alias processing
|
|
42
40
|
*/
|
|
43
|
-
generateKeyedSchema(
|
|
44
|
-
private process;
|
|
45
|
-
private processObject;
|
|
46
|
-
private processInterface;
|
|
47
|
-
private resolvePropertyType;
|
|
48
|
-
private resolvePropertyCompositionType;
|
|
41
|
+
generateKeyedSchema(keySchema: KeySchema): void;
|
|
49
42
|
}
|
|
50
43
|
//# sourceMappingURL=modelGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelGenerator.d.ts","sourceRoot":"","sources":["../../src/model/modelGenerator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"modelGenerator.d.ts","sourceRoot":"","sources":["../../src/model/modelGenerator.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAEL,SAAS,EACV,MAAM,UAAU,CAAC;AAIlB;;;;;;;;GAQG;AACH,qBAAa,cAAe,YAAW,SAAS;aAClB,OAAO,EAAE,eAAe;gBAAxB,OAAO,EAAE,eAAe;IAGpD,OAAO,CAAC,qBAAqB;IAK7B;;;;;;;OAOG;IACH,QAAQ;IAqBR,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,sBAAsB,CAQ5B;IAEF,OAAO,CAAC,wBAAwB;IAgBhC;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,SAAS,EAAE,SAAS;CAMzC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ModelInfo } from './modelInfo';
|
|
2
|
+
import { SourceFile } from 'ts-morph';
|
|
3
|
+
import { Reference, Schema } from '@ahoo-wang/fetcher-openapi';
|
|
4
|
+
import { KeySchema } from '../utils';
|
|
5
|
+
import { Generator } from '../generateContext';
|
|
6
|
+
export declare class TypeGenerator implements Generator {
|
|
7
|
+
private readonly modelInfo;
|
|
8
|
+
private readonly sourceFile;
|
|
9
|
+
private readonly keySchema;
|
|
10
|
+
private readonly outputDir;
|
|
11
|
+
constructor(modelInfo: ModelInfo, sourceFile: SourceFile, keySchema: KeySchema, outputDir: string);
|
|
12
|
+
generate(): void;
|
|
13
|
+
private process;
|
|
14
|
+
private resolveReference;
|
|
15
|
+
private resolveAdditionalProperties;
|
|
16
|
+
private resolvePropertyDefinitions;
|
|
17
|
+
private resolveObjectType;
|
|
18
|
+
private resolveMapValueType;
|
|
19
|
+
resolveType(schema: Schema | Reference): string;
|
|
20
|
+
private processEnum;
|
|
21
|
+
private addPropertyToInterface;
|
|
22
|
+
private processInterface;
|
|
23
|
+
private processArray;
|
|
24
|
+
private processComposition;
|
|
25
|
+
private processIntersection;
|
|
26
|
+
private processTypeAlias;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=typeGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeGenerator.d.ts","sourceRoot":"","sources":["../../src/model/typeGenerator.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAA6B,MAAM,aAAa,CAAC;AACnE,OAAO,EAAuC,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAeL,SAAS,EAOV,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,qBAAa,aAAc,YAAW,SAAS;IAE3C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAHT,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM;IAIpC,QAAQ,IAAI,IAAI;IAOhB,OAAO,CAAC,OAAO;IAoBf,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,0BAA0B;IAoBlC,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,mBAAmB;IAW3B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;IAmC/C,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,gBAAgB;CAOzB"}
|
package/dist/utils/schemas.d.ts
CHANGED
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
import { Schema, SchemaType } from '@ahoo-wang/fetcher-openapi';
|
|
1
|
+
import { Reference, Schema, SchemaType } from '@ahoo-wang/fetcher-openapi';
|
|
2
2
|
/**
|
|
3
3
|
* Checks if a schema type is primitive.
|
|
4
4
|
* @param type - The schema type to check
|
|
5
5
|
* @returns True if the type is primitive, false otherwise
|
|
6
6
|
*/
|
|
7
7
|
export declare function isPrimitive(type: SchemaType | SchemaType[]): boolean;
|
|
8
|
-
/**
|
|
9
|
-
* Checks if a schema is an array type.
|
|
10
|
-
* @param schema - The schema to check
|
|
11
|
-
* @returns True if the schema is an array type, false otherwise
|
|
12
|
-
*/
|
|
13
|
-
export declare function isArray(schema: Schema): schema is Schema & {
|
|
14
|
-
type: 'array';
|
|
15
|
-
};
|
|
16
8
|
export type EnumSchema = Schema & {
|
|
17
9
|
enum: any[];
|
|
18
10
|
};
|
|
@@ -22,6 +14,21 @@ export type EnumSchema = Schema & {
|
|
|
22
14
|
* @returns True if the schema has an enum property, false otherwise
|
|
23
15
|
*/
|
|
24
16
|
export declare function isEnum(schema: Schema): schema is EnumSchema;
|
|
17
|
+
export type ObjectSchema = Schema & {
|
|
18
|
+
type: 'object';
|
|
19
|
+
properties: Record<string, Schema | Reference>;
|
|
20
|
+
};
|
|
21
|
+
export declare function isObject(schema: Schema): schema is ObjectSchema;
|
|
22
|
+
export type ArraySchema = Schema & {
|
|
23
|
+
type: 'array';
|
|
24
|
+
items: Schema | Reference;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Checks if a schema is an array type.
|
|
28
|
+
* @param schema - The schema to check
|
|
29
|
+
* @returns True if the schema is an array type, false otherwise
|
|
30
|
+
*/
|
|
31
|
+
export declare function isArray(schema: Schema): schema is ArraySchema;
|
|
25
32
|
export type AnyOfSchema = Schema & {
|
|
26
33
|
anyOf: any[];
|
|
27
34
|
};
|
|
@@ -74,6 +81,11 @@ export declare function isComposition(schema: Schema): schema is CompositionSche
|
|
|
74
81
|
* @returns The array type string
|
|
75
82
|
*/
|
|
76
83
|
export declare function toArrayType(type: string): string;
|
|
84
|
+
export type MapSchema = Schema & {
|
|
85
|
+
type: 'object';
|
|
86
|
+
additionalProperties: boolean | Schema | Reference;
|
|
87
|
+
};
|
|
88
|
+
export declare function isMap(schema: Schema): schema is MapSchema;
|
|
77
89
|
/**
|
|
78
90
|
* Checks if a schema represents an empty object.
|
|
79
91
|
* @param schema - The schema to check
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAW3E;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,OAAO,CAKpE;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,UAAU,CAE3D;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAAE,CAAC;AAEvG,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,YAAY,CAE/D;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,CAE7D;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,CAE7D;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,CAE7D;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC;IAAE,KAAK,EAAE,GAAG,EAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC,CAAC;AAEzE;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,CAE7D;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,CAE7D;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,iBAAiB,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,oBAAoB,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CACnD,CAAC;AAEF,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,SAAS,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,MAAM,CAiB5E"}
|
|
@@ -41,15 +41,17 @@ export declare function addImportModelInfo(currentModel: ModelInfo, sourceFile:
|
|
|
41
41
|
* Generates a JSDoc comment string from a title and description.
|
|
42
42
|
* @returns The formatted JSDoc string or undefined if both title and description are empty
|
|
43
43
|
*/
|
|
44
|
-
export declare function jsDoc(descriptions: (string | undefined)[]): string | undefined;
|
|
44
|
+
export declare function jsDoc(descriptions: (string | undefined)[], separator?: string): string | undefined;
|
|
45
45
|
/**
|
|
46
46
|
* Adds a JSDoc comment to a node with the provided title and description.
|
|
47
47
|
*/
|
|
48
48
|
export declare function addJSDoc(node: JSDocableNode, descriptions: (string | undefined)[]): void;
|
|
49
|
+
export declare function schemaJSDoc(schema: Schema, key?: string): (string | undefined)[];
|
|
49
50
|
/**
|
|
50
51
|
* Adds a JSDoc comment to a node based on the schema's title and description.
|
|
51
52
|
* @param node - The node to add the JSDoc comment to
|
|
52
53
|
* @param schema - The schema containing title and description
|
|
54
|
+
* @param key - The key associated with the schema
|
|
53
55
|
*/
|
|
54
|
-
export declare function addSchemaJSDoc(node: JSDocableNode, schema: Schema): void;
|
|
56
|
+
export declare function addSchemaJSDoc(node: JSDocableNode, schema: Schema, key?: string): void;
|
|
55
57
|
//# sourceMappingURL=sourceFiles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceFiles.d.ts","sourceRoot":"","sources":["../../src/utils/sourceFiles.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAOpD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,UAAU,CASZ;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EAAE,QAsBvB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,SAAS,QAkBxB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,SAAS,EACvB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,SAAS,QAMpB;AAED;;;GAGG;AACH,wBAAgB,KAAK,CACnB,YAAY,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"sourceFiles.d.ts","sourceRoot":"","sources":["../../src/utils/sourceFiles.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAOpD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,UAAU,CASZ;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EAAE,QAsBvB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,SAAS,QAkBxB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,SAAS,EACvB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,SAAS,QAMpB;AAED;;;GAGG;AACH,wBAAgB,KAAK,CACnB,YAAY,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EACpC,SAAS,SAAO,GACf,MAAM,GAAG,SAAS,CAQpB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,QAOrC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,0BAkBvD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,QAG/E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ahoo-wang/fetcher-generator",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.12.1",
|
|
4
4
|
"description": "A powerful TypeScript code generation tool that automatically generates type-safe API client code based on OpenAPI specifications. It is designed for general use cases and is also deeply optimized for the [Wow](https://github.com/Ahoo-Wang/Wow) Domain-Driven Design framework, providing native support for the CQRS architectural pattern.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fetch",
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
"globals": "^16.4.0",
|
|
67
67
|
"prettier": "^3.6.2",
|
|
68
68
|
"typescript": "^5.9.3",
|
|
69
|
-
"typescript-eslint": "^8.46.
|
|
69
|
+
"typescript-eslint": "^8.46.2",
|
|
70
70
|
"unplugin-dts": "1.0.0-beta.6",
|
|
71
|
-
"vite": "^7.1.
|
|
71
|
+
"vite": "^7.1.11",
|
|
72
72
|
"vite-bundle-analyzer": "^1.2.3",
|
|
73
73
|
"vitest": "^3.2.4"
|
|
74
74
|
},
|