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,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type generator factory for creating and managing different type generators
|
|
3
|
+
* Provides a centralized way to instantiate and configure generators
|
|
4
|
+
*/
|
|
5
|
+
import { ResolvedSchema } from "../types/schema";
|
|
6
|
+
import { GenerationContext, GeneratedType, SchemanticConfig } from "../types/core";
|
|
7
|
+
import { TypeGenerator, GeneratorMetadata } from "./base";
|
|
8
|
+
/**
|
|
9
|
+
* Type generator factory class
|
|
10
|
+
*/
|
|
11
|
+
export declare class TypeGeneratorFactory {
|
|
12
|
+
private static generators;
|
|
13
|
+
private static initialized;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize default generators
|
|
16
|
+
*/
|
|
17
|
+
private static initialize;
|
|
18
|
+
/**
|
|
19
|
+
* Register a generator
|
|
20
|
+
*/
|
|
21
|
+
static registerGenerator(generator: TypeGenerator): void;
|
|
22
|
+
/**
|
|
23
|
+
* Create generators from configuration
|
|
24
|
+
*/
|
|
25
|
+
static createFromConfig(config: SchemanticConfig): TypeGenerator[];
|
|
26
|
+
/**
|
|
27
|
+
* Get the best generator for a schema
|
|
28
|
+
*/
|
|
29
|
+
static getBestGenerator(schema: ResolvedSchema, generators: TypeGenerator[]): TypeGenerator | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Generate type from schema using available generators
|
|
32
|
+
*/
|
|
33
|
+
static generateType(schema: ResolvedSchema, context: GenerationContext, generators: TypeGenerator[]): GeneratedType | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Get all registered generators
|
|
36
|
+
*/
|
|
37
|
+
static getRegisteredGenerators(): TypeGenerator[];
|
|
38
|
+
/**
|
|
39
|
+
* Get generator metadata
|
|
40
|
+
*/
|
|
41
|
+
static getGeneratorMetadata(): GeneratorMetadata[];
|
|
42
|
+
/**
|
|
43
|
+
* Clear all registered generators
|
|
44
|
+
*/
|
|
45
|
+
static clearGenerators(): void;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Convenience function to create generators from config
|
|
49
|
+
*/
|
|
50
|
+
export declare function createGenerators(config: SchemanticConfig): TypeGenerator[];
|
|
51
|
+
/**
|
|
52
|
+
* Convenience function to generate a type
|
|
53
|
+
*/
|
|
54
|
+
export declare function generateType(schema: ResolvedSchema, context: GenerationContext, generators: TypeGenerator[]): GeneratedType | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Convenience function to get the best generator
|
|
57
|
+
*/
|
|
58
|
+
export declare function getBestGenerator(schema: ResolvedSchema, generators: TypeGenerator[]): TypeGenerator | undefined;
|
|
59
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/generators/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,iBAAiB,EAElB,MAAM,QAAQ,CAAC;AAKhB;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAuB;IAChD,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IAEnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IASzB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;IAMxD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,EAAE;IAiClE;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,aAAa,EAAE,GAC1B,aAAa,GAAG,SAAS;IAU5B;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,aAAa,EAAE,GAC1B,aAAa,GAAG,SAAS;IAU5B;;OAEG;IACH,MAAM,CAAC,uBAAuB,IAAI,aAAa,EAAE;IAIjD;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,iBAAiB,EAAE;IAIlD;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,IAAI;CAI/B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAE1E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,aAAa,EAAE,GAC1B,aAAa,GAAG,SAAS,CAE3B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,aAAa,EAAE,GAC1B,aAAa,GAAG,SAAS,CAE3B"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type generator factory for creating and managing different type generators
|
|
4
|
+
* Provides a centralized way to instantiate and configure generators
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TypeGeneratorFactory = void 0;
|
|
8
|
+
exports.createGenerators = createGenerators;
|
|
9
|
+
exports.generateType = generateType;
|
|
10
|
+
exports.getBestGenerator = getBestGenerator;
|
|
11
|
+
const object_generator_1 = require("./object-generator");
|
|
12
|
+
const enum_generator_1 = require("./enum-generator");
|
|
13
|
+
const primitive_generator_1 = require("./primitive-generator");
|
|
14
|
+
/**
|
|
15
|
+
* Type generator factory class
|
|
16
|
+
*/
|
|
17
|
+
class TypeGeneratorFactory {
|
|
18
|
+
/**
|
|
19
|
+
* Initialize default generators
|
|
20
|
+
*/
|
|
21
|
+
static initialize() {
|
|
22
|
+
if (this.initialized) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Default generators will be registered when createFromConfig is called
|
|
26
|
+
this.initialized = true;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Register a generator
|
|
30
|
+
*/
|
|
31
|
+
static registerGenerator(generator) {
|
|
32
|
+
this.generators.push(generator);
|
|
33
|
+
// Sort by priority (higher priority first)
|
|
34
|
+
this.generators.sort((a, b) => b.getPriority() - a.getPriority());
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create generators from configuration
|
|
38
|
+
*/
|
|
39
|
+
static createFromConfig(config) {
|
|
40
|
+
this.initialize();
|
|
41
|
+
const options = {
|
|
42
|
+
useStrictTypes: config.useStrictTypes,
|
|
43
|
+
useOptionalChaining: config.useOptionalChaining,
|
|
44
|
+
useNullishCoalescing: config.useNullishCoalescing,
|
|
45
|
+
namingConvention: config.namingConvention,
|
|
46
|
+
preserveComments: config.preserveComments,
|
|
47
|
+
};
|
|
48
|
+
if (config.typePrefix !== undefined) {
|
|
49
|
+
options.typePrefix = config.typePrefix;
|
|
50
|
+
}
|
|
51
|
+
if (config.typeSuffix !== undefined) {
|
|
52
|
+
options.typeSuffix = config.typeSuffix;
|
|
53
|
+
}
|
|
54
|
+
if (config.customTypeMappings !== undefined) {
|
|
55
|
+
options.customTypeMappings = config.customTypeMappings;
|
|
56
|
+
}
|
|
57
|
+
// Create default generators
|
|
58
|
+
const generators = [
|
|
59
|
+
new enum_generator_1.EnumTypeGenerator(options),
|
|
60
|
+
new object_generator_1.ObjectTypeGenerator(options),
|
|
61
|
+
new primitive_generator_1.PrimitiveTypeGenerator(options),
|
|
62
|
+
];
|
|
63
|
+
return generators;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get the best generator for a schema
|
|
67
|
+
*/
|
|
68
|
+
static getBestGenerator(schema, generators) {
|
|
69
|
+
for (const generator of generators) {
|
|
70
|
+
if (generator.canHandle(schema)) {
|
|
71
|
+
return generator;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Generate type from schema using available generators
|
|
78
|
+
*/
|
|
79
|
+
static generateType(schema, context, generators) {
|
|
80
|
+
const generator = this.getBestGenerator(schema, generators);
|
|
81
|
+
if (!generator) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
return generator.generate(schema, context);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get all registered generators
|
|
88
|
+
*/
|
|
89
|
+
static getRegisteredGenerators() {
|
|
90
|
+
return [...this.generators];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get generator metadata
|
|
94
|
+
*/
|
|
95
|
+
static getGeneratorMetadata() {
|
|
96
|
+
return this.generators.map((g) => g.getMetadata());
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Clear all registered generators
|
|
100
|
+
*/
|
|
101
|
+
static clearGenerators() {
|
|
102
|
+
this.generators = [];
|
|
103
|
+
this.initialized = false;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.TypeGeneratorFactory = TypeGeneratorFactory;
|
|
107
|
+
TypeGeneratorFactory.generators = [];
|
|
108
|
+
TypeGeneratorFactory.initialized = false;
|
|
109
|
+
/**
|
|
110
|
+
* Convenience function to create generators from config
|
|
111
|
+
*/
|
|
112
|
+
function createGenerators(config) {
|
|
113
|
+
return TypeGeneratorFactory.createFromConfig(config);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Convenience function to generate a type
|
|
117
|
+
*/
|
|
118
|
+
function generateType(schema, context, generators) {
|
|
119
|
+
return TypeGeneratorFactory.generateType(schema, context, generators);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Convenience function to get the best generator
|
|
123
|
+
*/
|
|
124
|
+
function getBestGenerator(schema, generators) {
|
|
125
|
+
return TypeGeneratorFactory.getBestGenerator(schema, generators);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/generators/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React hooks generator for OpenAPI endpoints
|
|
3
|
+
* Generates lightweight hooks without external deps (uses React useState/useEffect/useCallback)
|
|
4
|
+
*/
|
|
5
|
+
import { GenerationContext, GeneratedEndpoint } from "../types/core";
|
|
6
|
+
export interface GeneratedHooksFile {
|
|
7
|
+
name: string;
|
|
8
|
+
content: string;
|
|
9
|
+
exports: string[];
|
|
10
|
+
endpoints: GeneratedEndpoint[];
|
|
11
|
+
}
|
|
12
|
+
export declare class HookGenerator {
|
|
13
|
+
private context;
|
|
14
|
+
constructor(context: GenerationContext);
|
|
15
|
+
generate(): GeneratedHooksFile;
|
|
16
|
+
private extractEndpoints;
|
|
17
|
+
private extractEndpoint;
|
|
18
|
+
private extractParameters;
|
|
19
|
+
private extractRequestBody;
|
|
20
|
+
private extractResponses;
|
|
21
|
+
private determineReturnType;
|
|
22
|
+
private extractSchemaType;
|
|
23
|
+
private generateImports;
|
|
24
|
+
private generateHooksBody;
|
|
25
|
+
private generateQueryHook;
|
|
26
|
+
private generateMutationHook;
|
|
27
|
+
private extractTypeNameFromRef;
|
|
28
|
+
private mapSchemaTypeToTypeScript;
|
|
29
|
+
private formatTypeName;
|
|
30
|
+
private getClientName;
|
|
31
|
+
private generateOperationId;
|
|
32
|
+
private convertToFunctionName;
|
|
33
|
+
private capitalize;
|
|
34
|
+
private extractTypeNamesFromType;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=hook-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-generator.d.ts","sourceRoot":"","sources":["../../src/generators/hook-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAIlB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,iBAAiB;IAE9C,QAAQ,IAAI,kBAAkB;IAiB9B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,gBAAgB;IAiDxB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,iBAAiB;IA0DzB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,iBAAiB;IA+DzB,OAAO,CAAC,oBAAoB;IAwE5B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,yBAAyB;IAyCjC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,mBAAmB;IAuC3B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,wBAAwB;CAIjC"}
|