@goast/core 0.0.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/README.md +11 -0
- package/dist/index.cjs +7 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/codegen/config.cjs +6 -0
- package/dist/lib/codegen/config.cjs.map +1 -0
- package/dist/lib/codegen/config.d.ts +6 -0
- package/dist/lib/codegen/config.js +3 -0
- package/dist/lib/codegen/config.js.map +1 -0
- package/dist/lib/codegen/endpoints-generator.cjs +31 -0
- package/dist/lib/codegen/endpoints-generator.cjs.map +1 -0
- package/dist/lib/codegen/endpoints-generator.d.ts +15 -0
- package/dist/lib/codegen/endpoints-generator.js +27 -0
- package/dist/lib/codegen/endpoints-generator.js.map +1 -0
- package/dist/lib/codegen/generator.cjs +103 -0
- package/dist/lib/codegen/generator.cjs.map +1 -0
- package/dist/lib/codegen/generator.d.ts +36 -0
- package/dist/lib/codegen/generator.js +98 -0
- package/dist/lib/codegen/generator.js.map +1 -0
- package/dist/lib/codegen/index.cjs +10 -0
- package/dist/lib/codegen/index.cjs.map +1 -0
- package/dist/lib/codegen/index.d.ts +6 -0
- package/dist/lib/codegen/index.js +7 -0
- package/dist/lib/codegen/index.js.map +1 -0
- package/dist/lib/codegen/internal-utils.cjs +10 -0
- package/dist/lib/codegen/internal-utils.cjs.map +1 -0
- package/dist/lib/codegen/internal-utils.d.ts +1 -0
- package/dist/lib/codegen/internal-utils.js +6 -0
- package/dist/lib/codegen/internal-utils.js.map +1 -0
- package/dist/lib/codegen/schemas-generator.cjs +43 -0
- package/dist/lib/codegen/schemas-generator.cjs.map +1 -0
- package/dist/lib/codegen/schemas-generator.d.ts +16 -0
- package/dist/lib/codegen/schemas-generator.js +39 -0
- package/dist/lib/codegen/schemas-generator.js.map +1 -0
- package/dist/lib/codegen/services-generator.cjs +31 -0
- package/dist/lib/codegen/services-generator.cjs.map +1 -0
- package/dist/lib/codegen/services-generator.d.ts +15 -0
- package/dist/lib/codegen/services-generator.js +27 -0
- package/dist/lib/codegen/services-generator.js.map +1 -0
- package/dist/lib/codegen/types.cjs +3 -0
- package/dist/lib/codegen/types.cjs.map +1 -0
- package/dist/lib/codegen/types.d.ts +17 -0
- package/dist/lib/codegen/types.js +2 -0
- package/dist/lib/codegen/types.js.map +1 -0
- package/dist/lib/collect/collector.cjs +116 -0
- package/dist/lib/collect/collector.cjs.map +1 -0
- package/dist/lib/collect/collector.d.ts +3 -0
- package/dist/lib/collect/collector.js +112 -0
- package/dist/lib/collect/collector.js.map +1 -0
- package/dist/lib/collect/helpers.cjs +33 -0
- package/dist/lib/collect/helpers.cjs.map +1 -0
- package/dist/lib/collect/helpers.d.ts +3 -0
- package/dist/lib/collect/helpers.js +28 -0
- package/dist/lib/collect/helpers.js.map +1 -0
- package/dist/lib/collect/index.cjs +7 -0
- package/dist/lib/collect/index.cjs.map +1 -0
- package/dist/lib/collect/index.d.ts +3 -0
- package/dist/lib/collect/index.js +4 -0
- package/dist/lib/collect/index.js.map +1 -0
- package/dist/lib/collect/types.cjs +3 -0
- package/dist/lib/collect/types.cjs.map +1 -0
- package/dist/lib/collect/types.d.ts +12 -0
- package/dist/lib/collect/types.js +2 -0
- package/dist/lib/collect/types.js.map +1 -0
- package/dist/lib/internal-utils.cjs +8 -0
- package/dist/lib/internal-utils.cjs.map +1 -0
- package/dist/lib/internal-utils.d.ts +1 -0
- package/dist/lib/internal-utils.js +4 -0
- package/dist/lib/internal-utils.js.map +1 -0
- package/dist/lib/parse/deref-proxy.cjs +46 -0
- package/dist/lib/parse/deref-proxy.cjs.map +1 -0
- package/dist/lib/parse/deref-proxy.d.ts +3 -0
- package/dist/lib/parse/deref-proxy.js +42 -0
- package/dist/lib/parse/deref-proxy.js.map +1 -0
- package/dist/lib/parse/index.cjs +7 -0
- package/dist/lib/parse/index.cjs.map +1 -0
- package/dist/lib/parse/index.d.ts +3 -0
- package/dist/lib/parse/index.js +4 -0
- package/dist/lib/parse/index.js.map +1 -0
- package/dist/lib/parse/openapi-types.cjs +3 -0
- package/dist/lib/parse/openapi-types.cjs.map +1 -0
- package/dist/lib/parse/openapi-types.d.ts +897 -0
- package/dist/lib/parse/openapi-types.js +2 -0
- package/dist/lib/parse/openapi-types.js.map +1 -0
- package/dist/lib/parse/parser.cjs +189 -0
- package/dist/lib/parse/parser.cjs.map +1 -0
- package/dist/lib/parse/parser.d.ts +16 -0
- package/dist/lib/parse/parser.js +185 -0
- package/dist/lib/parse/parser.js.map +1 -0
- package/dist/lib/parse/types.cjs +3 -0
- package/dist/lib/parse/types.cjs.map +1 -0
- package/dist/lib/parse/types.d.ts +15 -0
- package/dist/lib/parse/types.js +2 -0
- package/dist/lib/parse/types.js.map +1 -0
- package/dist/lib/transform/api-types.cjs +3 -0
- package/dist/lib/transform/api-types.cjs.map +1 -0
- package/dist/lib/transform/api-types.d.ts +186 -0
- package/dist/lib/transform/api-types.js +2 -0
- package/dist/lib/transform/api-types.js.map +1 -0
- package/dist/lib/transform/helpers.cjs +121 -0
- package/dist/lib/transform/helpers.cjs.map +1 -0
- package/dist/lib/transform/helpers.d.ts +50 -0
- package/dist/lib/transform/helpers.js +108 -0
- package/dist/lib/transform/helpers.js.map +1 -0
- package/dist/lib/transform/index.cjs +6 -0
- package/dist/lib/transform/index.cjs.map +1 -0
- package/dist/lib/transform/index.d.ts +2 -0
- package/dist/lib/transform/index.js +3 -0
- package/dist/lib/transform/index.js.map +1 -0
- package/dist/lib/transform/transform-document.cjs +33 -0
- package/dist/lib/transform/transform-document.cjs.map +1 -0
- package/dist/lib/transform/transform-document.d.ts +3 -0
- package/dist/lib/transform/transform-document.js +29 -0
- package/dist/lib/transform/transform-document.js.map +1 -0
- package/dist/lib/transform/transform-endpoint.cjs +254 -0
- package/dist/lib/transform/transform-endpoint.cjs.map +1 -0
- package/dist/lib/transform/transform-endpoint.d.ts +4 -0
- package/dist/lib/transform/transform-endpoint.js +250 -0
- package/dist/lib/transform/transform-endpoint.js.map +1 -0
- package/dist/lib/transform/transform-schema.cjs +142 -0
- package/dist/lib/transform/transform-schema.cjs.map +1 -0
- package/dist/lib/transform/transform-schema.d.ts +4 -0
- package/dist/lib/transform/transform-schema.js +138 -0
- package/dist/lib/transform/transform-schema.js.map +1 -0
- package/dist/lib/transform/transformer.cjs +44 -0
- package/dist/lib/transform/transformer.cjs.map +1 -0
- package/dist/lib/transform/transformer.d.ts +3 -0
- package/dist/lib/transform/transformer.js +40 -0
- package/dist/lib/transform/transformer.js.map +1 -0
- package/dist/lib/transform/types.cjs +3 -0
- package/dist/lib/transform/types.cjs.map +1 -0
- package/dist/lib/transform/types.d.ts +23 -0
- package/dist/lib/transform/types.js +2 -0
- package/dist/lib/transform/types.js.map +1 -0
- package/dist/lib/utils/action-provider.cjs +35 -0
- package/dist/lib/utils/action-provider.cjs.map +1 -0
- package/dist/lib/utils/action-provider.d.ts +28 -0
- package/dist/lib/utils/action-provider.js +31 -0
- package/dist/lib/utils/action-provider.js.map +1 -0
- package/dist/lib/utils/common.utils.cjs +12 -0
- package/dist/lib/utils/common.utils.cjs.map +1 -0
- package/dist/lib/utils/common.utils.d.ts +3 -0
- package/dist/lib/utils/common.utils.js +7 -0
- package/dist/lib/utils/common.utils.js.map +1 -0
- package/dist/lib/utils/condition.cjs +9 -0
- package/dist/lib/utils/condition.cjs.map +1 -0
- package/dist/lib/utils/condition.d.ts +3 -0
- package/dist/lib/utils/condition.js +5 -0
- package/dist/lib/utils/condition.js.map +1 -0
- package/dist/lib/utils/endpoint.utils.cjs +13 -0
- package/dist/lib/utils/endpoint.utils.cjs.map +1 -0
- package/dist/lib/utils/endpoint.utils.d.ts +2 -0
- package/dist/lib/utils/endpoint.utils.js +9 -0
- package/dist/lib/utils/endpoint.utils.js.map +1 -0
- package/dist/lib/utils/factory.cjs +29 -0
- package/dist/lib/utils/factory.cjs.map +1 -0
- package/dist/lib/utils/factory.d.ts +20 -0
- package/dist/lib/utils/factory.js +25 -0
- package/dist/lib/utils/factory.js.map +1 -0
- package/dist/lib/utils/generator.utils.cjs +11 -0
- package/dist/lib/utils/generator.utils.cjs.map +1 -0
- package/dist/lib/utils/generator.utils.d.ts +1 -0
- package/dist/lib/utils/generator.utils.js +7 -0
- package/dist/lib/utils/generator.utils.js.map +1 -0
- package/dist/lib/utils/index.cjs +14 -0
- package/dist/lib/utils/index.cjs.map +1 -0
- package/dist/lib/utils/index.d.ts +10 -0
- package/dist/lib/utils/index.js +11 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/utils/object.utils.cjs +21 -0
- package/dist/lib/utils/object.utils.cjs.map +1 -0
- package/dist/lib/utils/object.utils.d.ts +1 -0
- package/dist/lib/utils/object.utils.js +17 -0
- package/dist/lib/utils/object.utils.js.map +1 -0
- package/dist/lib/utils/schema.utils.cjs +55 -0
- package/dist/lib/utils/schema.utils.cjs.map +1 -0
- package/dist/lib/utils/schema.utils.d.ts +10 -0
- package/dist/lib/utils/schema.utils.js +50 -0
- package/dist/lib/utils/schema.utils.js.map +1 -0
- package/dist/lib/utils/source-builder.cjs +378 -0
- package/dist/lib/utils/source-builder.cjs.map +1 -0
- package/dist/lib/utils/source-builder.d.ts +216 -0
- package/dist/lib/utils/source-builder.js +374 -0
- package/dist/lib/utils/source-builder.js.map +1 -0
- package/dist/lib/utils/string.utils.cjs +337 -0
- package/dist/lib/utils/string.utils.cjs.map +1 -0
- package/dist/lib/utils/string.utils.d.ts +173 -0
- package/dist/lib/utils/string.utils.js +324 -0
- package/dist/lib/utils/string.utils.js.map +1 -0
- package/dist/lib/utils/string.utils.types.cjs +3 -0
- package/dist/lib/utils/string.utils.types.cjs.map +1 -0
- package/dist/lib/utils/string.utils.types.d.ts +148 -0
- package/dist/lib/utils/string.utils.types.js +2 -0
- package/dist/lib/utils/string.utils.types.js.map +1 -0
- package/dist/lib/utils/type.utils.cjs +3 -0
- package/dist/lib/utils/type.utils.cjs.map +1 -0
- package/dist/lib/utils/type.utils.d.ts +15 -0
- package/dist/lib/utils/type.utils.js +2 -0
- package/dist/lib/utils/type.utils.js.map +1 -0
- package/package.json +27 -0
package/README.md
ADDED
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./lib/codegen"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./lib/parse"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./lib/transform"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../../packages/core/src/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,sDAA4B;AAC5B,0DAAgC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultOpenApiGeneratorConfig = void 0;
|
|
4
|
+
const source_builder_1 = require("../utils/source-builder");
|
|
5
|
+
exports.defaultOpenApiGeneratorConfig = Object.assign(Object.assign({}, source_builder_1.defaultSourceBuilderOptions), { outputDir: 'generated', clearOutputDir: true });
|
|
6
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/config.ts"],"names":[],"mappings":";;;AAAA,4DAA4F;AAO/E,QAAA,6BAA6B,mCACrC,4CAA2B,KAE9B,SAAS,EAAE,WAAW,EACtB,cAAc,EAAE,IAAI,IACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAO5F,MAAM,CAAC,MAAM,6BAA6B,mCACrC,2BAA2B,KAE9B,SAAS,EAAE,WAAW,EACtB,cAAc,EAAE,IAAI,GACrB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenApiEndpointsGenerationProviderBase = void 0;
|
|
4
|
+
const generator_1 = require("./generator");
|
|
5
|
+
const internal_utils_1 = require("./internal-utils");
|
|
6
|
+
class OpenApiEndpointsGenerationProviderBase extends generator_1.OpenApiGenerationProviderBase {
|
|
7
|
+
getProviderContext(context, config, defaultConfig) {
|
|
8
|
+
const ctx = super.getProviderContext(context, config, defaultConfig);
|
|
9
|
+
return Object.assign(ctx, {
|
|
10
|
+
existingEndpointResults: new Map(),
|
|
11
|
+
output: this.initResult(ctx),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
onGenerate(ctx) {
|
|
15
|
+
for (const endpoint of ctx.data.endpoints) {
|
|
16
|
+
this.getEndpointResult(ctx, endpoint);
|
|
17
|
+
}
|
|
18
|
+
return ctx.output;
|
|
19
|
+
}
|
|
20
|
+
getEndpointResult(ctx, endpoint) {
|
|
21
|
+
const existingResult = ctx.existingEndpointResults.get(endpoint.id);
|
|
22
|
+
if (existingResult)
|
|
23
|
+
return existingResult;
|
|
24
|
+
const result = this.generateEndpoint(ctx, endpoint);
|
|
25
|
+
(0, internal_utils_1.addSourceIfTest)(ctx.config, result, () => `${endpoint.$src.file}#${endpoint.$src.path}`);
|
|
26
|
+
this.addEndpointResult(ctx, endpoint, result);
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.OpenApiEndpointsGenerationProviderBase = OpenApiEndpointsGenerationProviderBase;
|
|
31
|
+
//# sourceMappingURL=endpoints-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints-generator.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/endpoints-generator.ts"],"names":[],"mappings":";;;AAAA,2CAA6F;AAC7F,qDAAmD;AAoBnD,MAAsB,sCAMpB,SAAQ,yCAAiE;IACtD,kBAAkB,CACnC,OAAwC,EACxC,MAAoC,EACpC,aAAuD;QAEvD,MAAM,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YACxB,uBAAuB,EAAE,IAAI,GAAG,EAA2B;YAC3D,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAEkB,UAAU,CAAC,GAAa;QACzC,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;YACzC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SACvC;QAED,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,iBAAiB,CAAC,GAAa,EAAE,QAAqB;QAC3D,MAAM,cAAc,GAAG,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAA,gCAAe,EAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;CAOF;AA1CD,wFA0CC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DefaultGenerationProviderConfig, OpenApiGenerationProviderBase } from './generator';
|
|
2
|
+
import { OpenApiGeneratorInput, OpenApiGeneratorOutput, AnyConfig, OpenApiGenerationProviderContext, OpenApiGeneratorContext } from './types';
|
|
3
|
+
import { ApiEndpoint } from '../transform';
|
|
4
|
+
export type OpenApiEndpointsGenerationProviderContext<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TEndpointOutput extends OpenApiGeneratorOutput> = OpenApiGenerationProviderContext<TInput, TConfig> & {
|
|
5
|
+
existingEndpointResults: Map<string, TEndpointOutput>;
|
|
6
|
+
output: TOutput;
|
|
7
|
+
};
|
|
8
|
+
export declare abstract class OpenApiEndpointsGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TEndpointOutput extends OpenApiGeneratorOutput, TContext extends OpenApiEndpointsGenerationProviderContext<TInput, TOutput, TConfig, TEndpointOutput>> extends OpenApiGenerationProviderBase<TInput, TOutput, TConfig, TContext> {
|
|
9
|
+
protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiEndpointsGenerationProviderContext<TInput, TOutput, TConfig, TEndpointOutput>;
|
|
10
|
+
protected onGenerate(ctx: TContext): TOutput;
|
|
11
|
+
getEndpointResult(ctx: TContext, endpoint: ApiEndpoint): TEndpointOutput;
|
|
12
|
+
protected abstract initResult(ctx: OpenApiGenerationProviderContext<TInput, TConfig>): TOutput;
|
|
13
|
+
protected abstract generateEndpoint(ctx: TContext, endpoint: ApiEndpoint): TEndpointOutput;
|
|
14
|
+
protected abstract addEndpointResult(ctx: TContext, endpoint: ApiEndpoint, result: TEndpointOutput): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { OpenApiGenerationProviderBase } from './generator';
|
|
2
|
+
import { addSourceIfTest } from './internal-utils';
|
|
3
|
+
export class OpenApiEndpointsGenerationProviderBase extends OpenApiGenerationProviderBase {
|
|
4
|
+
getProviderContext(context, config, defaultConfig) {
|
|
5
|
+
const ctx = super.getProviderContext(context, config, defaultConfig);
|
|
6
|
+
return Object.assign(ctx, {
|
|
7
|
+
existingEndpointResults: new Map(),
|
|
8
|
+
output: this.initResult(ctx),
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
onGenerate(ctx) {
|
|
12
|
+
for (const endpoint of ctx.data.endpoints) {
|
|
13
|
+
this.getEndpointResult(ctx, endpoint);
|
|
14
|
+
}
|
|
15
|
+
return ctx.output;
|
|
16
|
+
}
|
|
17
|
+
getEndpointResult(ctx, endpoint) {
|
|
18
|
+
const existingResult = ctx.existingEndpointResults.get(endpoint.id);
|
|
19
|
+
if (existingResult)
|
|
20
|
+
return existingResult;
|
|
21
|
+
const result = this.generateEndpoint(ctx, endpoint);
|
|
22
|
+
addSourceIfTest(ctx.config, result, () => `${endpoint.$src.file}#${endpoint.$src.path}`);
|
|
23
|
+
this.addEndpointResult(ctx, endpoint, result);
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=endpoints-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints-generator.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/endpoints-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAoBnD,MAAM,OAAgB,sCAMpB,SAAQ,6BAAiE;IACtD,kBAAkB,CACnC,OAAwC,EACxC,MAAoC,EACpC,aAAuD;QAEvD,MAAM,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YACxB,uBAAuB,EAAE,IAAI,GAAG,EAA2B;YAC3D,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAEkB,UAAU,CAAC,GAAa;QACzC,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;YACzC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SACvC;QAED,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,iBAAiB,CAAC,GAAa,EAAE,QAAqB;QAC3D,MAAM,cAAc,GAAG,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACpD,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;CAOF"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenApiGenerationProviderBase = exports.OpenApiGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const fs_extra_1 = require("fs-extra");
|
|
7
|
+
const config_1 = require("./config");
|
|
8
|
+
const parser_1 = require("../parse/parser");
|
|
9
|
+
const action_provider_1 = require("../utils/action-provider");
|
|
10
|
+
class _OpenApiGenerator {
|
|
11
|
+
constructor(config, providers, parser) {
|
|
12
|
+
this._providers = providers;
|
|
13
|
+
this._config = config;
|
|
14
|
+
this._parser = parser;
|
|
15
|
+
}
|
|
16
|
+
use(provider, config) {
|
|
17
|
+
this._providers.push({ provider: provider, config });
|
|
18
|
+
return new _OpenApiGenerator(this._config, [...this._providers], this._parser);
|
|
19
|
+
}
|
|
20
|
+
useType(type, config) {
|
|
21
|
+
return this.use(action_provider_1.ActionProvider.fromType(type, 'generate'), config);
|
|
22
|
+
}
|
|
23
|
+
useFn(fn, config) {
|
|
24
|
+
return this.use(action_provider_1.ActionProvider.fromFn(fn), config);
|
|
25
|
+
}
|
|
26
|
+
useValue(value, config) {
|
|
27
|
+
return this.use(action_provider_1.ActionProvider.fromValue(value, 'generate'), config);
|
|
28
|
+
}
|
|
29
|
+
generate(data) {
|
|
30
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const absOutputPath = (0, path_1.resolve)(this._config.outputDir);
|
|
32
|
+
if (this._config.clearOutputDir) {
|
|
33
|
+
yield (0, fs_extra_1.emptyDir)(absOutputPath);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
yield (0, fs_extra_1.ensureDir)(absOutputPath);
|
|
37
|
+
}
|
|
38
|
+
let input = {};
|
|
39
|
+
for (const generator of this._providers) {
|
|
40
|
+
const context = {
|
|
41
|
+
data,
|
|
42
|
+
input,
|
|
43
|
+
config: this._config,
|
|
44
|
+
};
|
|
45
|
+
const result = generator.provider.run(context, generator.config);
|
|
46
|
+
if (result) {
|
|
47
|
+
input = mergeDeep(input, result);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return input;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
parseAndGenerate(...fileNames) {
|
|
54
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const data = yield this._parser.parseApisAndTransform(...fileNames);
|
|
56
|
+
return yield this.generate(data);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
class OpenApiGenerator extends _OpenApiGenerator {
|
|
61
|
+
constructor(config) {
|
|
62
|
+
super(Object.assign(Object.assign({}, config_1.defaultOpenApiGeneratorConfig), config), [], new parser_1.OpenApiParser());
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.OpenApiGenerator = OpenApiGenerator;
|
|
66
|
+
function mergeDeep(target, ...sources) {
|
|
67
|
+
if (!sources.length)
|
|
68
|
+
return target;
|
|
69
|
+
const source = sources.shift();
|
|
70
|
+
for (const key in source) {
|
|
71
|
+
const value = source[key];
|
|
72
|
+
if (value && typeof value === 'object') {
|
|
73
|
+
if (!target[key])
|
|
74
|
+
Object.assign(target, { [key]: value });
|
|
75
|
+
else
|
|
76
|
+
mergeDeep(target[key], value);
|
|
77
|
+
}
|
|
78
|
+
else if (Array.isArray(value)) {
|
|
79
|
+
if (!target[key])
|
|
80
|
+
Object.assign(target, { [key]: value });
|
|
81
|
+
else
|
|
82
|
+
Object.assign(target, { [key]: [...target[key], ...value] });
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
Object.assign(target, { [key]: value });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return mergeDeep(target, ...sources);
|
|
89
|
+
}
|
|
90
|
+
class OpenApiGenerationProviderBase {
|
|
91
|
+
generate(context, config) {
|
|
92
|
+
const ctx = this.buildContext(context, config);
|
|
93
|
+
return this.onGenerate(ctx);
|
|
94
|
+
}
|
|
95
|
+
getProviderContext(context, config, defaultConfig) {
|
|
96
|
+
const c = Object.assign(Object.assign(Object.assign({}, defaultConfig), context.config), config);
|
|
97
|
+
return Object.assign(context, {
|
|
98
|
+
config: c,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.OpenApiGenerationProviderBase = OpenApiGenerationProviderBase;
|
|
103
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/generator.ts"],"names":[],"mappings":";;;;AAAA,+BAA+B;AAE/B,uCAA+C;AAE/C,qCAAiF;AAUjF,4CAAgD;AAEhD,8DAA0D;AAY1D,MAAM,iBAAiB;IAKrB,YAAY,MAA8B,EAAE,SAAqC,EAAE,MAAqB;QACtG,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAEM,GAAG,CACR,QAAgG,EAChG,MAAyB;QAEzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,iBAAiB,CAA4B,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5G,CAAC;IAEM,OAAO,CAKZ,IAA4F,EAC5F,MAAyB;QAEzB,OAAO,IAAI,CAAC,GAAG,CAAC,gCAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CACV,EAA0E,EAC1E,MAAyB;QAEzB,OAAO,IAAI,CAAC,GAAG,CAAC,gCAAc,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAEM,QAAQ,CACb,KAA2E,EAC3E,MAAyB;QAEzB,OAAO,IAAI,CAAC,GAAG,CAAC,gCAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAEY,QAAQ,CAAoB,IAAO;;YAC9C,MAAM,aAAa,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC/B,MAAM,IAAA,mBAAQ,EAAC,aAAa,CAAC,CAAC;aAC/B;iBAAM;gBACL,MAAM,IAAA,oBAAS,EAAC,aAAa,CAAC,CAAC;aAChC;YAED,IAAI,KAAK,GAAG,EAAa,CAAC;YAC1B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;gBACvC,MAAM,OAAO,GAAG;oBACd,IAAI;oBACJ,KAAK;oBACL,MAAM,EAAE,IAAI,CAAC,OAAO;iBACrB,CAAC;gBAEF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;gBACjE,IAAI,MAAM,EAAE;oBACV,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;iBAClC;aACF;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAEY,gBAAgB,CAAC,GAAG,SAAgC;;YAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC,CAAC;YACpE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;KAAA;CACF;AAED,MAAa,gBAAiB,SAAQ,iBAAqB;IACzD,YAAY,MAAwC;QAClD,KAAK,iCAAM,sCAA6B,GAAK,MAAM,GAAI,EAAE,EAAE,IAAI,sBAAa,EAAE,CAAC,CAAC;IAClF,CAAC;CACF;AAJD,4CAIC;AAED,SAAS,SAAS,CAChB,MAAS,EACT,GAAG,OAAU;IAEb,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAE/B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;;gBACrD,SAAS,CAAC,MAAM,CAAC,GAAG,CAA4B,EAAE,KAAgC,CAAC,CAAC;SAC1F;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;;gBACrD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAI,MAAM,CAAC,GAAG,CAAuB,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;SAC1F;aAAM;YACL,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SACzC;KACF;IAED,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;AACvC,CAAC;AAKD,MAAsB,6BAA6B;IAO1C,QAAQ,CAAC,OAAwC,EAAE,MAAqC;QAC7F,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,kBAAkB,CAC1B,OAAwC,EACxC,MAAoC,EACpC,aAAuD;QAEvD,MAAM,CAAC,GAAG,8CAAK,aAAa,GAAK,OAAO,CAAC,MAAM,GAAK,MAAM,CAAiD,CAAC;QAC5G,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;YAC5B,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;IACL,CAAC;CAQF;AA7BD,sEA6BC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { OpenApiGeneratorConfig } from './config';
|
|
2
|
+
import { AnyConfig, OpenApiGenerationProvider, OpenApiGenerationProviderContext, OpenApiGenerationProviderFn, OpenApiGeneratorContext, OpenApiGeneratorInput, OpenApiGeneratorOutput } from './types';
|
|
3
|
+
import { OpenApiParser } from '../parse/parser';
|
|
4
|
+
import { ApiData } from '../transform';
|
|
5
|
+
import { ActionProvider } from '../utils/action-provider';
|
|
6
|
+
import { EmptyConstructor, Merge } from '../utils/type.utils';
|
|
7
|
+
type OpenApiGenerationProviders = {
|
|
8
|
+
provider: ActionProvider<OpenApiGenerationProviderFn>;
|
|
9
|
+
config: AnyConfig | undefined;
|
|
10
|
+
}[];
|
|
11
|
+
type VInput<TActual, TExpected> = TExpected extends TActual ? TActual : {
|
|
12
|
+
__error: 'The current output of the generator does not satisfy the input of this generator.';
|
|
13
|
+
};
|
|
14
|
+
declare class _OpenApiGenerator<TOutput extends OpenApiGeneratorInput> {
|
|
15
|
+
private readonly _providers;
|
|
16
|
+
private readonly _config;
|
|
17
|
+
private readonly _parser;
|
|
18
|
+
constructor(config: OpenApiGeneratorConfig, providers: OpenApiGenerationProviders, parser: OpenApiParser);
|
|
19
|
+
use<PInput extends OpenApiGeneratorInput, POutput extends OpenApiGeneratorOutput, PConfig extends AnyConfig>(provider: ActionProvider<OpenApiGenerationProviderFn<VInput<PInput, TOutput>, POutput, PConfig>>, config?: Partial<PConfig>): _OpenApiGenerator<Merge<[TOutput, POutput]>>;
|
|
20
|
+
useType<PInput extends OpenApiGeneratorInput, POutput extends OpenApiGeneratorOutput, PConfig extends AnyConfig>(type: EmptyConstructor<OpenApiGenerationProvider<VInput<PInput, TOutput>, POutput, PConfig>>, config?: Partial<PConfig>): _OpenApiGenerator<Merge<[TOutput, POutput]>>;
|
|
21
|
+
useFn<PInput extends TOutput, POutput extends OpenApiGeneratorOutput, PConfig extends AnyConfig>(fn: OpenApiGenerationProviderFn<VInput<PInput, TOutput>, POutput, PConfig>, config?: Partial<PConfig>): _OpenApiGenerator<Merge<[TOutput, POutput]>>;
|
|
22
|
+
useValue<PInput extends TOutput, POutput extends OpenApiGeneratorOutput, PConfig extends AnyConfig>(value: OpenApiGenerationProvider<VInput<PInput, TOutput>, POutput, PConfig>, config?: Partial<PConfig>): _OpenApiGenerator<Merge<[TOutput, POutput]>>;
|
|
23
|
+
generate<T extends ApiData>(data: T): Promise<TOutput>;
|
|
24
|
+
parseAndGenerate(...fileNames: (string | string[])[]): Promise<TOutput>;
|
|
25
|
+
}
|
|
26
|
+
export declare class OpenApiGenerator extends _OpenApiGenerator<{}> {
|
|
27
|
+
constructor(config?: Partial<OpenApiGeneratorConfig>);
|
|
28
|
+
}
|
|
29
|
+
export type DefaultGenerationProviderConfig<T extends AnyConfig> = Omit<T, keyof OpenApiGeneratorConfig> & Partial<Pick<T, keyof OpenApiGeneratorConfig>>;
|
|
30
|
+
export declare abstract class OpenApiGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TContext extends OpenApiGenerationProviderContext<TInput, TConfig>> implements OpenApiGenerationProvider<TInput, TOutput, TConfig> {
|
|
31
|
+
generate(context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig> | undefined): TOutput;
|
|
32
|
+
protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiGenerationProviderContext<TInput, TConfig>;
|
|
33
|
+
protected abstract buildContext(context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig> | undefined): TContext;
|
|
34
|
+
protected abstract onGenerate(ctx: TContext): TOutput;
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { resolve } from 'path';
|
|
3
|
+
import { emptyDir, ensureDir } from 'fs-extra';
|
|
4
|
+
import { defaultOpenApiGeneratorConfig } from './config';
|
|
5
|
+
import { OpenApiParser } from '../parse/parser';
|
|
6
|
+
import { ActionProvider } from '../utils/action-provider';
|
|
7
|
+
class _OpenApiGenerator {
|
|
8
|
+
constructor(config, providers, parser) {
|
|
9
|
+
this._providers = providers;
|
|
10
|
+
this._config = config;
|
|
11
|
+
this._parser = parser;
|
|
12
|
+
}
|
|
13
|
+
use(provider, config) {
|
|
14
|
+
this._providers.push({ provider: provider, config });
|
|
15
|
+
return new _OpenApiGenerator(this._config, [...this._providers], this._parser);
|
|
16
|
+
}
|
|
17
|
+
useType(type, config) {
|
|
18
|
+
return this.use(ActionProvider.fromType(type, 'generate'), config);
|
|
19
|
+
}
|
|
20
|
+
useFn(fn, config) {
|
|
21
|
+
return this.use(ActionProvider.fromFn(fn), config);
|
|
22
|
+
}
|
|
23
|
+
useValue(value, config) {
|
|
24
|
+
return this.use(ActionProvider.fromValue(value, 'generate'), config);
|
|
25
|
+
}
|
|
26
|
+
generate(data) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const absOutputPath = resolve(this._config.outputDir);
|
|
29
|
+
if (this._config.clearOutputDir) {
|
|
30
|
+
yield emptyDir(absOutputPath);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
yield ensureDir(absOutputPath);
|
|
34
|
+
}
|
|
35
|
+
let input = {};
|
|
36
|
+
for (const generator of this._providers) {
|
|
37
|
+
const context = {
|
|
38
|
+
data,
|
|
39
|
+
input,
|
|
40
|
+
config: this._config,
|
|
41
|
+
};
|
|
42
|
+
const result = generator.provider.run(context, generator.config);
|
|
43
|
+
if (result) {
|
|
44
|
+
input = mergeDeep(input, result);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return input;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
parseAndGenerate(...fileNames) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
const data = yield this._parser.parseApisAndTransform(...fileNames);
|
|
53
|
+
return yield this.generate(data);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export class OpenApiGenerator extends _OpenApiGenerator {
|
|
58
|
+
constructor(config) {
|
|
59
|
+
super(Object.assign(Object.assign({}, defaultOpenApiGeneratorConfig), config), [], new OpenApiParser());
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function mergeDeep(target, ...sources) {
|
|
63
|
+
if (!sources.length)
|
|
64
|
+
return target;
|
|
65
|
+
const source = sources.shift();
|
|
66
|
+
for (const key in source) {
|
|
67
|
+
const value = source[key];
|
|
68
|
+
if (value && typeof value === 'object') {
|
|
69
|
+
if (!target[key])
|
|
70
|
+
Object.assign(target, { [key]: value });
|
|
71
|
+
else
|
|
72
|
+
mergeDeep(target[key], value);
|
|
73
|
+
}
|
|
74
|
+
else if (Array.isArray(value)) {
|
|
75
|
+
if (!target[key])
|
|
76
|
+
Object.assign(target, { [key]: value });
|
|
77
|
+
else
|
|
78
|
+
Object.assign(target, { [key]: [...target[key], ...value] });
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
Object.assign(target, { [key]: value });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return mergeDeep(target, ...sources);
|
|
85
|
+
}
|
|
86
|
+
export class OpenApiGenerationProviderBase {
|
|
87
|
+
generate(context, config) {
|
|
88
|
+
const ctx = this.buildContext(context, config);
|
|
89
|
+
return this.onGenerate(ctx);
|
|
90
|
+
}
|
|
91
|
+
getProviderContext(context, config, defaultConfig) {
|
|
92
|
+
const c = Object.assign(Object.assign(Object.assign({}, defaultConfig), context.config), config);
|
|
93
|
+
return Object.assign(context, {
|
|
94
|
+
config: c,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./config"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./endpoints-generator"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./generator"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./schemas-generator"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./services-generator"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,gEAAsC;AACtC,sDAA4B;AAC5B,8DAAoC;AACpC,+DAAqC;AACrC,kDAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addSourceIfTest = void 0;
|
|
4
|
+
function addSourceIfTest(config, result, sourceFn) {
|
|
5
|
+
if (config.__test__ && !result.__source__) {
|
|
6
|
+
result.__source__ = sourceFn();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.addSourceIfTest = addSourceIfTest;
|
|
10
|
+
//# sourceMappingURL=internal-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-utils.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/internal-utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,eAAe,CAAC,MAAW,EAAE,MAAW,EAAE,QAAmB;IAC3E,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QACzC,MAAM,CAAC,UAAU,GAAG,QAAQ,EAAE,CAAC;KAChC;AACH,CAAC;AAJD,0CAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function addSourceIfTest(config: any, result: any, sourceFn: () => any): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-utils.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/internal-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,MAAW,EAAE,MAAW,EAAE,QAAmB;IAC3E,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QACzC,MAAM,CAAC,UAAU,GAAG,QAAQ,EAAE,CAAC;KAChC;AACH,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenApiSchemasGenerationProviderBase = void 0;
|
|
4
|
+
const generator_1 = require("./generator");
|
|
5
|
+
const internal_utils_1 = require("./internal-utils");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
class OpenApiSchemasGenerationProviderBase extends generator_1.OpenApiGenerationProviderBase {
|
|
8
|
+
getProviderContext(context, config, defaultConfig) {
|
|
9
|
+
const ctx = super.getProviderContext(context, config, defaultConfig);
|
|
10
|
+
return Object.assign(ctx, {
|
|
11
|
+
existingSchemaResults: new Map(),
|
|
12
|
+
output: this.initResult(ctx),
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
onGenerate(ctx) {
|
|
16
|
+
for (const schema of ctx.data.schemas) {
|
|
17
|
+
this.getSchemaResult(ctx, schema);
|
|
18
|
+
}
|
|
19
|
+
return ctx.output;
|
|
20
|
+
}
|
|
21
|
+
getSchemaResult(ctx, schema) {
|
|
22
|
+
const existingResult = ctx.existingSchemaResults.get(schema.id);
|
|
23
|
+
if (existingResult)
|
|
24
|
+
return existingResult;
|
|
25
|
+
let result;
|
|
26
|
+
const reference = this.getSchemaReference(ctx, schema);
|
|
27
|
+
if (reference) {
|
|
28
|
+
result = this.getSchemaResult(ctx, reference);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
result = this.generateSchema(ctx, schema);
|
|
32
|
+
}
|
|
33
|
+
(0, internal_utils_1.addSourceIfTest)(ctx.config, result, () => `${schema.$src.file}#${schema.$src.path}`);
|
|
34
|
+
this.addSchemaResult(ctx, schema, result);
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
getSchemaReference(ctx, schema) {
|
|
38
|
+
const ref = (0, utils_1.getSchemaReference)(schema, ['description']);
|
|
39
|
+
return ref.id !== schema.id ? ref : undefined;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.OpenApiSchemasGenerationProviderBase = OpenApiSchemasGenerationProviderBase;
|
|
43
|
+
//# sourceMappingURL=schemas-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas-generator.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/schemas-generator.ts"],"names":[],"mappings":";;;AAAA,2CAA6F;AAC7F,qDAAmD;AASnD,oCAA8C;AAY9C,MAAsB,oCAMpB,SAAQ,yCAAiE;IACtD,kBAAkB,CACnC,OAAwC,EACxC,MAAoC,EACpC,aAAuD;QAEvD,MAAM,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YACxB,qBAAqB,EAAE,IAAI,GAAG,EAAyB;YACvD,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAEkB,UAAU,CAAC,GAAa;QACzC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;YACrC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACnC;QAED,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,eAAe,CAAC,GAAa,EAAE,MAAiB;QACrD,MAAM,cAAc,GAAG,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QAE1C,IAAI,MAAqB,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,SAAS,EAAE;YACb,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SAC/C;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SAC3C;QAED,IAAA,gCAAe,EAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,kBAAkB,CAAC,GAAa,EAAE,MAAiB;QAC3D,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAAC,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;CAOF;AAtDD,oFAsDC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DefaultGenerationProviderConfig, OpenApiGenerationProviderBase } from './generator';
|
|
2
|
+
import { AnyConfig, OpenApiGenerationProviderContext, OpenApiGeneratorContext, OpenApiGeneratorInput, OpenApiGeneratorOutput } from './types';
|
|
3
|
+
import { ApiSchema } from '../transform';
|
|
4
|
+
export type OpenApiSchemasGenerationProviderContext<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TSchemaOutput extends OpenApiGeneratorOutput> = OpenApiGenerationProviderContext<TInput, TConfig> & {
|
|
5
|
+
existingSchemaResults: Map<string, TSchemaOutput>;
|
|
6
|
+
output: TOutput;
|
|
7
|
+
};
|
|
8
|
+
export declare abstract class OpenApiSchemasGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TSchemaOutput extends OpenApiGeneratorOutput, TContext extends OpenApiSchemasGenerationProviderContext<TInput, TOutput, TConfig, TSchemaOutput>> extends OpenApiGenerationProviderBase<TInput, TOutput, TConfig, TContext> {
|
|
9
|
+
protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiSchemasGenerationProviderContext<TInput, TOutput, TConfig, TSchemaOutput>;
|
|
10
|
+
protected onGenerate(ctx: TContext): TOutput;
|
|
11
|
+
getSchemaResult(ctx: TContext, schema: ApiSchema): TSchemaOutput;
|
|
12
|
+
protected getSchemaReference(ctx: TContext, schema: ApiSchema): ApiSchema | undefined;
|
|
13
|
+
protected abstract initResult(ctx: OpenApiGenerationProviderContext<TInput, TConfig>): TOutput;
|
|
14
|
+
protected abstract generateSchema(ctx: TContext, schema: ApiSchema): TSchemaOutput;
|
|
15
|
+
protected abstract addSchemaResult(ctx: TContext, schema: ApiSchema, result: TSchemaOutput): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { OpenApiGenerationProviderBase } from './generator';
|
|
2
|
+
import { addSourceIfTest } from './internal-utils';
|
|
3
|
+
import { getSchemaReference } from '../utils';
|
|
4
|
+
export class OpenApiSchemasGenerationProviderBase extends OpenApiGenerationProviderBase {
|
|
5
|
+
getProviderContext(context, config, defaultConfig) {
|
|
6
|
+
const ctx = super.getProviderContext(context, config, defaultConfig);
|
|
7
|
+
return Object.assign(ctx, {
|
|
8
|
+
existingSchemaResults: new Map(),
|
|
9
|
+
output: this.initResult(ctx),
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
onGenerate(ctx) {
|
|
13
|
+
for (const schema of ctx.data.schemas) {
|
|
14
|
+
this.getSchemaResult(ctx, schema);
|
|
15
|
+
}
|
|
16
|
+
return ctx.output;
|
|
17
|
+
}
|
|
18
|
+
getSchemaResult(ctx, schema) {
|
|
19
|
+
const existingResult = ctx.existingSchemaResults.get(schema.id);
|
|
20
|
+
if (existingResult)
|
|
21
|
+
return existingResult;
|
|
22
|
+
let result;
|
|
23
|
+
const reference = this.getSchemaReference(ctx, schema);
|
|
24
|
+
if (reference) {
|
|
25
|
+
result = this.getSchemaResult(ctx, reference);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
result = this.generateSchema(ctx, schema);
|
|
29
|
+
}
|
|
30
|
+
addSourceIfTest(ctx.config, result, () => `${schema.$src.file}#${schema.$src.path}`);
|
|
31
|
+
this.addSchemaResult(ctx, schema, result);
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
getSchemaReference(ctx, schema) {
|
|
35
|
+
const ref = getSchemaReference(schema, ['description']);
|
|
36
|
+
return ref.id !== schema.id ? ref : undefined;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=schemas-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas-generator.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/schemas-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AASnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAY9C,MAAM,OAAgB,oCAMpB,SAAQ,6BAAiE;IACtD,kBAAkB,CACnC,OAAwC,EACxC,MAAoC,EACpC,aAAuD;QAEvD,MAAM,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YACxB,qBAAqB,EAAE,IAAI,GAAG,EAAyB;YACvD,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAEkB,UAAU,CAAC,GAAa;QACzC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;YACrC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACnC;QAED,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,eAAe,CAAC,GAAa,EAAE,MAAiB;QACrD,MAAM,cAAc,GAAG,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QAE1C,IAAI,MAAqB,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,SAAS,EAAE;YACb,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SAC/C;aAAM;YACL,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SAC3C;QAED,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,kBAAkB,CAAC,GAAa,EAAE,MAAiB;QAC3D,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;CAOF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenApiServicesGenerationProviderBase = void 0;
|
|
4
|
+
const generator_1 = require("./generator");
|
|
5
|
+
const internal_utils_1 = require("./internal-utils");
|
|
6
|
+
class OpenApiServicesGenerationProviderBase extends generator_1.OpenApiGenerationProviderBase {
|
|
7
|
+
getProviderContext(context, config, defaultConfig) {
|
|
8
|
+
const ctx = super.getProviderContext(context, config, defaultConfig);
|
|
9
|
+
return Object.assign(ctx, {
|
|
10
|
+
existingServiceResults: new Map(),
|
|
11
|
+
output: this.initResult(ctx),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
onGenerate(ctx) {
|
|
15
|
+
for (const service of ctx.data.services) {
|
|
16
|
+
this.getServiceResult(ctx, service);
|
|
17
|
+
}
|
|
18
|
+
return ctx.output;
|
|
19
|
+
}
|
|
20
|
+
getServiceResult(ctx, service) {
|
|
21
|
+
const existingResult = ctx.existingServiceResults.get(service.id);
|
|
22
|
+
if (existingResult)
|
|
23
|
+
return existingResult;
|
|
24
|
+
const result = this.generateService(ctx, service);
|
|
25
|
+
(0, internal_utils_1.addSourceIfTest)(ctx.config, result, () => service.$src ? `${service.$src.file}#${service.$src.path}` : `tag:${service.name}`);
|
|
26
|
+
this.addServiceResult(ctx, service, result);
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.OpenApiServicesGenerationProviderBase = OpenApiServicesGenerationProviderBase;
|
|
31
|
+
//# sourceMappingURL=services-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services-generator.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/services-generator.ts"],"names":[],"mappings":";;;AAAA,2CAA6F;AAC7F,qDAAmD;AAoBnD,MAAsB,qCAMpB,SAAQ,yCAAiE;IACtD,kBAAkB,CACnC,OAAwC,EACxC,MAAoC,EACpC,aAAuD;QAEvD,MAAM,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YACxB,sBAAsB,EAAE,IAAI,GAAG,EAA0B;YACzD,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAEe,UAAU,CAAC,GAAa;QACtC,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACrC;QAED,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,gBAAgB,CAAC,GAAa,EAAE,OAAmB;QACxD,MAAM,cAAc,GAAG,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAElD,IAAA,gCAAe,EAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,CACnF,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;CAOF;AA7CD,sFA6CC"}
|