schemantic 0.1.0
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/CHANGELOG.md +92 -0
- package/LICENSE +21 -0
- package/README.md +827 -0
- package/dist/__tests__/setup.d.ts +6 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +30 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/__tests__/test-config.d.ts +36 -0
- package/dist/__tests__/test-config.d.ts.map +1 -0
- package/dist/__tests__/test-config.js +563 -0
- package/dist/__tests__/test-config.js.map +1 -0
- package/dist/cli/index.d.ts +118 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +657 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +21 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/schemantic.d.ts +95 -0
- package/dist/core/schemantic.d.ts.map +1 -0
- package/dist/core/schemantic.js +543 -0
- package/dist/core/schemantic.js.map +1 -0
- package/dist/generators/api-client-generator.d.ts +145 -0
- package/dist/generators/api-client-generator.d.ts.map +1 -0
- package/dist/generators/api-client-generator.js +856 -0
- package/dist/generators/api-client-generator.js.map +1 -0
- package/dist/generators/base.d.ts +117 -0
- package/dist/generators/base.d.ts.map +1 -0
- package/dist/generators/base.js +232 -0
- package/dist/generators/base.js.map +1 -0
- package/dist/generators/enum-generator.d.ts +52 -0
- package/dist/generators/enum-generator.d.ts.map +1 -0
- package/dist/generators/enum-generator.js +178 -0
- package/dist/generators/enum-generator.js.map +1 -0
- package/dist/generators/factory.d.ts +59 -0
- package/dist/generators/factory.d.ts.map +1 -0
- package/dist/generators/factory.js +127 -0
- package/dist/generators/factory.js.map +1 -0
- package/dist/generators/hook-generator.d.ts +36 -0
- package/dist/generators/hook-generator.d.ts.map +1 -0
- package/dist/generators/hook-generator.js +495 -0
- package/dist/generators/hook-generator.js.map +1 -0
- package/dist/generators/index.d.ts +10 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +26 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/object-generator.d.ts +48 -0
- package/dist/generators/object-generator.d.ts.map +1 -0
- package/dist/generators/object-generator.js +280 -0
- package/dist/generators/object-generator.js.map +1 -0
- package/dist/generators/primitive-generator.d.ts +40 -0
- package/dist/generators/primitive-generator.d.ts.map +1 -0
- package/dist/generators/primitive-generator.js +150 -0
- package/dist/generators/primitive-generator.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/base.d.ts +101 -0
- package/dist/parsers/base.d.ts.map +1 -0
- package/dist/parsers/base.js +77 -0
- package/dist/parsers/base.js.map +1 -0
- package/dist/parsers/factory.d.ts +64 -0
- package/dist/parsers/factory.d.ts.map +1 -0
- package/dist/parsers/factory.js +116 -0
- package/dist/parsers/factory.js.map +1 -0
- package/dist/parsers/index.d.ts +7 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +23 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/openapi.d.ts +52 -0
- package/dist/parsers/openapi.d.ts.map +1 -0
- package/dist/parsers/openapi.js +396 -0
- package/dist/parsers/openapi.js.map +1 -0
- package/dist/plugins/branded-types.d.ts +28 -0
- package/dist/plugins/branded-types.d.ts.map +1 -0
- package/dist/plugins/branded-types.js +568 -0
- package/dist/plugins/branded-types.js.map +1 -0
- package/dist/plugins/builtin.d.ts +38 -0
- package/dist/plugins/builtin.d.ts.map +1 -0
- package/dist/plugins/builtin.js +283 -0
- package/dist/plugins/builtin.js.map +1 -0
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +23 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/loader.d.ts +92 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +245 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +99 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +233 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/performance-monitoring.d.ts +98 -0
- package/dist/plugins/performance-monitoring.d.ts.map +1 -0
- package/dist/plugins/performance-monitoring.js +596 -0
- package/dist/plugins/performance-monitoring.js.map +1 -0
- package/dist/plugins/request-deduplication.d.ts +27 -0
- package/dist/plugins/request-deduplication.d.ts.map +1 -0
- package/dist/plugins/request-deduplication.js +650 -0
- package/dist/plugins/request-deduplication.js.map +1 -0
- package/dist/plugins/zod-validation.d.ts +63 -0
- package/dist/plugins/zod-validation.d.ts.map +1 -0
- package/dist/plugins/zod-validation.js +743 -0
- package/dist/plugins/zod-validation.js.map +1 -0
- package/dist/types/core.d.ts +203 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +24 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/openapi.d.ts +250 -0
- package/dist/types/openapi.d.ts.map +1 -0
- package/dist/types/openapi.js +8 -0
- package/dist/types/openapi.js.map +1 -0
- package/dist/types/schema.d.ts +68 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +22 -0
- package/dist/types/schema.js.map +1 -0
- package/docs/ADVANCED_PLUGINS_IMPLEMENTATION.md +355 -0
- package/docs/ADVANCED_PLUGIN_DEVELOPMENT.md +309 -0
- package/docs/API.md +600 -0
- package/docs/CONFIGURATION.md +722 -0
- package/docs/FASTAPI_TUTORIAL.md +1497 -0
- package/docs/PLUGINS.md +683 -0
- package/docs/PLUGIN_DEVELOPMENT.md +720 -0
- package/package.json +90 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API client generator for OpenAPI specifications
|
|
3
|
+
* Generates TypeScript API client classes with proper typing from OpenAPI schemas
|
|
4
|
+
*/
|
|
5
|
+
import { GenerationContext, GeneratedApiClient } from "../types/core";
|
|
6
|
+
/**
|
|
7
|
+
* API client generator implementation
|
|
8
|
+
*/
|
|
9
|
+
export declare class ApiClientGenerator {
|
|
10
|
+
private context;
|
|
11
|
+
constructor(context: GenerationContext);
|
|
12
|
+
/**
|
|
13
|
+
* Generate API client from OpenAPI schema
|
|
14
|
+
*/
|
|
15
|
+
generate(context: GenerationContext): GeneratedApiClient;
|
|
16
|
+
/**
|
|
17
|
+
* Extract endpoints from OpenAPI paths
|
|
18
|
+
*/
|
|
19
|
+
private extractEndpoints;
|
|
20
|
+
/**
|
|
21
|
+
* Extract endpoint information from operation
|
|
22
|
+
*/
|
|
23
|
+
private extractEndpoint;
|
|
24
|
+
/**
|
|
25
|
+
* Extract parameters from operation
|
|
26
|
+
*/
|
|
27
|
+
private extractParameters;
|
|
28
|
+
/**
|
|
29
|
+
* Extract request body from operation
|
|
30
|
+
*/
|
|
31
|
+
private extractRequestBody;
|
|
32
|
+
/**
|
|
33
|
+
* Extract responses from operation
|
|
34
|
+
*/
|
|
35
|
+
private extractResponses;
|
|
36
|
+
/**
|
|
37
|
+
* Determine return type from responses
|
|
38
|
+
*/
|
|
39
|
+
private determineReturnType;
|
|
40
|
+
/**
|
|
41
|
+
* Extract parameter type from schema
|
|
42
|
+
*/
|
|
43
|
+
private extractParameterType;
|
|
44
|
+
/**
|
|
45
|
+
* Extract schema type
|
|
46
|
+
*/
|
|
47
|
+
private extractSchemaType;
|
|
48
|
+
/**
|
|
49
|
+
* Generate client class
|
|
50
|
+
*/
|
|
51
|
+
private generateClientClass;
|
|
52
|
+
/**
|
|
53
|
+
* Generate configuration interface
|
|
54
|
+
*/
|
|
55
|
+
private generateConfigInterface;
|
|
56
|
+
/**
|
|
57
|
+
* Generate error class
|
|
58
|
+
*/
|
|
59
|
+
private generateErrorClass;
|
|
60
|
+
/**
|
|
61
|
+
* Generate constructor
|
|
62
|
+
*/
|
|
63
|
+
private generateConstructor;
|
|
64
|
+
/**
|
|
65
|
+
* Generate endpoint method
|
|
66
|
+
*/
|
|
67
|
+
private generateEndpointMethod;
|
|
68
|
+
/**
|
|
69
|
+
* Generate method parameters
|
|
70
|
+
*/
|
|
71
|
+
private generateMethodParameters;
|
|
72
|
+
/**
|
|
73
|
+
* Generate method body
|
|
74
|
+
*/
|
|
75
|
+
private generateMethodBody;
|
|
76
|
+
/**
|
|
77
|
+
* Generate URL construction
|
|
78
|
+
*/
|
|
79
|
+
private generateUrlConstruction;
|
|
80
|
+
/**
|
|
81
|
+
* Generate request options
|
|
82
|
+
*/
|
|
83
|
+
private generateRequestOptions;
|
|
84
|
+
/**
|
|
85
|
+
* Generate fetch call
|
|
86
|
+
*/
|
|
87
|
+
private generateFetchCall;
|
|
88
|
+
/**
|
|
89
|
+
* Generate response handling
|
|
90
|
+
*/
|
|
91
|
+
private generateResponseHandling;
|
|
92
|
+
/**
|
|
93
|
+
* Generate utility methods
|
|
94
|
+
*/
|
|
95
|
+
private generateUtilityMethods;
|
|
96
|
+
/**
|
|
97
|
+
* Generate imports
|
|
98
|
+
*/
|
|
99
|
+
private generateImports;
|
|
100
|
+
/**
|
|
101
|
+
* Get type names from endpoints
|
|
102
|
+
*/
|
|
103
|
+
private getTypeNamesFromEndpoints;
|
|
104
|
+
/**
|
|
105
|
+
* Extract type names from type string
|
|
106
|
+
*/
|
|
107
|
+
private extractTypeNamesFromType;
|
|
108
|
+
/**
|
|
109
|
+
* Get dependencies from endpoints
|
|
110
|
+
*/
|
|
111
|
+
private getDependencies;
|
|
112
|
+
/**
|
|
113
|
+
* Apply configured prefix/suffix to a type name
|
|
114
|
+
*/
|
|
115
|
+
/**
|
|
116
|
+
* Normalize a type name using the same rules as BaseTypeGenerator and apply prefix/suffix
|
|
117
|
+
*/
|
|
118
|
+
private formatTypeName;
|
|
119
|
+
private toPascalCase;
|
|
120
|
+
/**
|
|
121
|
+
* Get client name
|
|
122
|
+
*/
|
|
123
|
+
private getClientName;
|
|
124
|
+
/**
|
|
125
|
+
* Generate operation ID
|
|
126
|
+
*/
|
|
127
|
+
private generateOperationId;
|
|
128
|
+
/**
|
|
129
|
+
* Convert to function name
|
|
130
|
+
*/
|
|
131
|
+
private convertToFunctionName;
|
|
132
|
+
/**
|
|
133
|
+
* Capitalize string
|
|
134
|
+
*/
|
|
135
|
+
private capitalize;
|
|
136
|
+
/**
|
|
137
|
+
* Extract type name from reference
|
|
138
|
+
*/
|
|
139
|
+
private extractTypeNameFromRef;
|
|
140
|
+
/**
|
|
141
|
+
* Map schema type to TypeScript
|
|
142
|
+
*/
|
|
143
|
+
private mapSchemaTypeToTypeScript;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=api-client-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client-generator.d.ts","sourceRoot":"","sources":["../../src/generators/api-client-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAKnB,MAAM,eAAe,CAAC;AAGvB;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAoB;gBACvB,OAAO,EAAE,iBAAiB;IAKtC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB;IAyBxD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0CxB;;OAEG;IACH,OAAO,CAAC,eAAe;IA2CvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgD1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoExB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6EzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqC3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyChC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA4C/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA0C9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+E9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA4BjC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAMhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6C3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0C7B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;CAuDlC"}
|