@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
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DefaultGenerationProviderConfig, OpenApiGenerationProviderBase } from './generator';
|
|
2
|
+
import { OpenApiGeneratorInput, OpenApiGeneratorOutput, AnyConfig, OpenApiGeneratorContext, OpenApiGenerationProviderContext } from './types';
|
|
3
|
+
import { ApiService } from '../transform';
|
|
4
|
+
export type OpenApiServicesGenerationProviderContext<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TServiceOutput extends OpenApiGeneratorOutput> = OpenApiGenerationProviderContext<TInput, TConfig> & {
|
|
5
|
+
existingServiceResults: Map<string, TServiceOutput>;
|
|
6
|
+
output: TOutput;
|
|
7
|
+
};
|
|
8
|
+
export declare abstract class OpenApiServicesGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TServiceOutput extends OpenApiGeneratorOutput, TContext extends OpenApiServicesGenerationProviderContext<TInput, TOutput, TConfig, TServiceOutput>> extends OpenApiGenerationProviderBase<TInput, TOutput, TConfig, TContext> {
|
|
9
|
+
protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiServicesGenerationProviderContext<TInput, TOutput, TConfig, TServiceOutput>;
|
|
10
|
+
onGenerate(ctx: TContext): TOutput;
|
|
11
|
+
getServiceResult(ctx: TContext, service: ApiService): TServiceOutput;
|
|
12
|
+
protected abstract initResult(ctx: OpenApiGenerationProviderContext<TInput, TConfig>): TOutput;
|
|
13
|
+
protected abstract generateService(ctx: TContext, service: ApiService): TServiceOutput;
|
|
14
|
+
protected abstract addServiceResult(ctx: TContext, service: ApiService, result: TServiceOutput): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { OpenApiGenerationProviderBase } from './generator';
|
|
2
|
+
import { addSourceIfTest } from './internal-utils';
|
|
3
|
+
export class OpenApiServicesGenerationProviderBase extends OpenApiGenerationProviderBase {
|
|
4
|
+
getProviderContext(context, config, defaultConfig) {
|
|
5
|
+
const ctx = super.getProviderContext(context, config, defaultConfig);
|
|
6
|
+
return Object.assign(ctx, {
|
|
7
|
+
existingServiceResults: new Map(),
|
|
8
|
+
output: this.initResult(ctx),
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
onGenerate(ctx) {
|
|
12
|
+
for (const service of ctx.data.services) {
|
|
13
|
+
this.getServiceResult(ctx, service);
|
|
14
|
+
}
|
|
15
|
+
return ctx.output;
|
|
16
|
+
}
|
|
17
|
+
getServiceResult(ctx, service) {
|
|
18
|
+
const existingResult = ctx.existingServiceResults.get(service.id);
|
|
19
|
+
if (existingResult)
|
|
20
|
+
return existingResult;
|
|
21
|
+
const result = this.generateService(ctx, service);
|
|
22
|
+
addSourceIfTest(ctx.config, result, () => service.$src ? `${service.$src.file}#${service.$src.path}` : `tag:${service.name}`);
|
|
23
|
+
this.addServiceResult(ctx, service, result);
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=services-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services-generator.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/services-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAoBnD,MAAM,OAAgB,qCAMpB,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,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,eAAe,CAAC,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OpenApiGeneratorConfig } from './config';
|
|
2
|
+
import { ApiData } from '../transform';
|
|
3
|
+
export type AnyConfig = Readonly<Record<string, unknown>>;
|
|
4
|
+
export type OpenApiGeneratorInput = Record<string, unknown>;
|
|
5
|
+
export type OpenApiGeneratorOutput = Record<string, unknown> | undefined;
|
|
6
|
+
export type OpenApiGeneratorContext<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput> = {
|
|
7
|
+
data: ApiData;
|
|
8
|
+
input: TInput;
|
|
9
|
+
config: OpenApiGeneratorConfig;
|
|
10
|
+
};
|
|
11
|
+
export type OpenApiGenerationProviderContext<TInput extends OpenApiGeneratorInput, TConfig extends AnyConfig> = Omit<OpenApiGeneratorContext<TInput>, 'config'> & {
|
|
12
|
+
config: OpenApiGeneratorConfig & TConfig;
|
|
13
|
+
};
|
|
14
|
+
export interface OpenApiGenerationProvider<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput, TConfig extends AnyConfig = AnyConfig> {
|
|
15
|
+
generate(...args: Parameters<OpenApiGenerationProviderFn<TInput, TOutput, TConfig>>): ReturnType<OpenApiGenerationProviderFn<TInput, TOutput, TConfig>>;
|
|
16
|
+
}
|
|
17
|
+
export type OpenApiGenerationProviderFn<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput, TConfig extends AnyConfig = AnyConfig> = (context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig>) => TOutput;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/codegen/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.collectOpenApi = void 0;
|
|
4
|
+
const helpers_1 = require("./helpers");
|
|
5
|
+
function collectOpenApi(apis) {
|
|
6
|
+
const data = {
|
|
7
|
+
documents: [],
|
|
8
|
+
schemas: new Map(),
|
|
9
|
+
endpoints: new Map(),
|
|
10
|
+
};
|
|
11
|
+
collectDocument(data, apis);
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
exports.collectOpenApi = collectOpenApi;
|
|
15
|
+
function collectDocument(data, documents) {
|
|
16
|
+
(0, helpers_1.collect)(data, documents, (data, document) => {
|
|
17
|
+
var _a, _b, _c, _d, _e;
|
|
18
|
+
data.documents.push(document);
|
|
19
|
+
collectPaths(data, document.paths);
|
|
20
|
+
(0, helpers_1.collectRecord)(data, (_a = document.components) === null || _a === void 0 ? void 0 : _a.schemas, collectSchema);
|
|
21
|
+
(0, helpers_1.collectRecord)(data, document.definitions, collectSchema);
|
|
22
|
+
(0, helpers_1.collectRecord)(data, (_b = document.components) === null || _b === void 0 ? void 0 : _b.parameters, collectParameter);
|
|
23
|
+
(0, helpers_1.collectRecord)(data, document.parameters, collectParameter);
|
|
24
|
+
(0, helpers_1.collectRecord)(data, (_c = document.components) === null || _c === void 0 ? void 0 : _c.requestBodies, collectRequestBody);
|
|
25
|
+
(0, helpers_1.collectRecord)(data, (_d = document.components) === null || _d === void 0 ? void 0 : _d.responses, collectResponse);
|
|
26
|
+
(0, helpers_1.collectRecord)(data, document.responses, collectResponse);
|
|
27
|
+
(0, helpers_1.collectRecord)(data, (_e = document.components) === null || _e === void 0 ? void 0 : _e.headers, collectHeader);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function collectPaths(data, paths) {
|
|
31
|
+
(0, helpers_1.collect)(data, paths, (data, path) => {
|
|
32
|
+
(0, helpers_1.collectRecord)(data, path, collectPathItem);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function collectPathItem(data, pathItems, path) {
|
|
36
|
+
(0, helpers_1.collect)(data, pathItems, (data, pathItem) => {
|
|
37
|
+
collectParameter(data, pathItem.parameters);
|
|
38
|
+
for (const m of ['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace']) {
|
|
39
|
+
const operation = pathItem[m];
|
|
40
|
+
if (!operation)
|
|
41
|
+
continue;
|
|
42
|
+
const key = `${operation.$src.file}#${operation.$src.path}`;
|
|
43
|
+
if (data.endpoints.has(key))
|
|
44
|
+
continue;
|
|
45
|
+
data.endpoints.set(key, {
|
|
46
|
+
path,
|
|
47
|
+
method: m,
|
|
48
|
+
pathItem,
|
|
49
|
+
operation,
|
|
50
|
+
});
|
|
51
|
+
collectParameter(data, operation.parameters);
|
|
52
|
+
collectRequestBody(data, operation.requestBody);
|
|
53
|
+
(0, helpers_1.collectRecord)(data, operation.responses, collectResponse);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function collectSchema(data, schemas) {
|
|
58
|
+
(0, helpers_1.collect)(data, schemas, (data, schema) => {
|
|
59
|
+
const key = `${schema.$src.file}#${schema.$src.path}`;
|
|
60
|
+
if (data.schemas.has(key))
|
|
61
|
+
return;
|
|
62
|
+
data.schemas.set(key, schema);
|
|
63
|
+
collectSchema(data, schema.allOf);
|
|
64
|
+
collectSchema(data, schema.anyOf);
|
|
65
|
+
collectSchema(data, schema.oneOf);
|
|
66
|
+
collectSchema(data, schema.items);
|
|
67
|
+
collectSchema(data, schema.not);
|
|
68
|
+
(0, helpers_1.collectRecord)(data, schema.properties, collectSchema);
|
|
69
|
+
(0, helpers_1.collectRecord)(data, schema.patternProperties, collectSchema);
|
|
70
|
+
(0, helpers_1.collectRecord)(data, schema.dependencies, collectSchema);
|
|
71
|
+
(0, helpers_1.collectRecord)(data, schema.definitions, collectSchema);
|
|
72
|
+
if (typeof schema.additionalProperties === 'object') {
|
|
73
|
+
collectSchema(data, schema.additionalProperties);
|
|
74
|
+
}
|
|
75
|
+
if (typeof schema.additionalItems === 'object') {
|
|
76
|
+
collectSchema(data, schema.additionalItems);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function collectParameter(data, parameters) {
|
|
81
|
+
(0, helpers_1.collect)(data, parameters, (data, parameter) => {
|
|
82
|
+
collectSchema(data, parameter.schema);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function collectMediaType(data, mediaTypes) {
|
|
86
|
+
(0, helpers_1.collect)(data, mediaTypes, (data, mediaType) => {
|
|
87
|
+
collectSchema(data, mediaType.schema);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function collectRequestBody(data, requestBody) {
|
|
91
|
+
(0, helpers_1.collect)(data, requestBody, (data, requestBody) => {
|
|
92
|
+
(0, helpers_1.collectRecord)(data, requestBody.content, collectMediaType);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function isSchema(obj) {
|
|
96
|
+
return obj && typeof obj === 'object' && obj['type'] !== undefined;
|
|
97
|
+
}
|
|
98
|
+
function collectResponse(data, responses) {
|
|
99
|
+
(0, helpers_1.collect)(data, responses, (data, responses) => {
|
|
100
|
+
(0, helpers_1.collectRecord)(data, responses.content, collectMediaType);
|
|
101
|
+
(0, helpers_1.collect)(data, responses.headers, (data, header) => {
|
|
102
|
+
if (isSchema(header)) {
|
|
103
|
+
collectSchema(data, header);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
collectHeader(data, header);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function collectHeader(data, headers) {
|
|
112
|
+
(0, helpers_1.collect)(data, headers, (data, headers) => {
|
|
113
|
+
collectSchema(data, headers.schema);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collector.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/collect/collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { collect, collectRecord } from './helpers';
|
|
2
|
+
export function collectOpenApi(apis) {
|
|
3
|
+
const data = {
|
|
4
|
+
documents: [],
|
|
5
|
+
schemas: new Map(),
|
|
6
|
+
endpoints: new Map(),
|
|
7
|
+
};
|
|
8
|
+
collectDocument(data, apis);
|
|
9
|
+
return data;
|
|
10
|
+
}
|
|
11
|
+
function collectDocument(data, documents) {
|
|
12
|
+
collect(data, documents, (data, document) => {
|
|
13
|
+
var _a, _b, _c, _d, _e;
|
|
14
|
+
data.documents.push(document);
|
|
15
|
+
collectPaths(data, document.paths);
|
|
16
|
+
collectRecord(data, (_a = document.components) === null || _a === void 0 ? void 0 : _a.schemas, collectSchema);
|
|
17
|
+
collectRecord(data, document.definitions, collectSchema);
|
|
18
|
+
collectRecord(data, (_b = document.components) === null || _b === void 0 ? void 0 : _b.parameters, collectParameter);
|
|
19
|
+
collectRecord(data, document.parameters, collectParameter);
|
|
20
|
+
collectRecord(data, (_c = document.components) === null || _c === void 0 ? void 0 : _c.requestBodies, collectRequestBody);
|
|
21
|
+
collectRecord(data, (_d = document.components) === null || _d === void 0 ? void 0 : _d.responses, collectResponse);
|
|
22
|
+
collectRecord(data, document.responses, collectResponse);
|
|
23
|
+
collectRecord(data, (_e = document.components) === null || _e === void 0 ? void 0 : _e.headers, collectHeader);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function collectPaths(data, paths) {
|
|
27
|
+
collect(data, paths, (data, path) => {
|
|
28
|
+
collectRecord(data, path, collectPathItem);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function collectPathItem(data, pathItems, path) {
|
|
32
|
+
collect(data, pathItems, (data, pathItem) => {
|
|
33
|
+
collectParameter(data, pathItem.parameters);
|
|
34
|
+
for (const m of ['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace']) {
|
|
35
|
+
const operation = pathItem[m];
|
|
36
|
+
if (!operation)
|
|
37
|
+
continue;
|
|
38
|
+
const key = `${operation.$src.file}#${operation.$src.path}`;
|
|
39
|
+
if (data.endpoints.has(key))
|
|
40
|
+
continue;
|
|
41
|
+
data.endpoints.set(key, {
|
|
42
|
+
path,
|
|
43
|
+
method: m,
|
|
44
|
+
pathItem,
|
|
45
|
+
operation,
|
|
46
|
+
});
|
|
47
|
+
collectParameter(data, operation.parameters);
|
|
48
|
+
collectRequestBody(data, operation.requestBody);
|
|
49
|
+
collectRecord(data, operation.responses, collectResponse);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function collectSchema(data, schemas) {
|
|
54
|
+
collect(data, schemas, (data, schema) => {
|
|
55
|
+
const key = `${schema.$src.file}#${schema.$src.path}`;
|
|
56
|
+
if (data.schemas.has(key))
|
|
57
|
+
return;
|
|
58
|
+
data.schemas.set(key, schema);
|
|
59
|
+
collectSchema(data, schema.allOf);
|
|
60
|
+
collectSchema(data, schema.anyOf);
|
|
61
|
+
collectSchema(data, schema.oneOf);
|
|
62
|
+
collectSchema(data, schema.items);
|
|
63
|
+
collectSchema(data, schema.not);
|
|
64
|
+
collectRecord(data, schema.properties, collectSchema);
|
|
65
|
+
collectRecord(data, schema.patternProperties, collectSchema);
|
|
66
|
+
collectRecord(data, schema.dependencies, collectSchema);
|
|
67
|
+
collectRecord(data, schema.definitions, collectSchema);
|
|
68
|
+
if (typeof schema.additionalProperties === 'object') {
|
|
69
|
+
collectSchema(data, schema.additionalProperties);
|
|
70
|
+
}
|
|
71
|
+
if (typeof schema.additionalItems === 'object') {
|
|
72
|
+
collectSchema(data, schema.additionalItems);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function collectParameter(data, parameters) {
|
|
77
|
+
collect(data, parameters, (data, parameter) => {
|
|
78
|
+
collectSchema(data, parameter.schema);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function collectMediaType(data, mediaTypes) {
|
|
82
|
+
collect(data, mediaTypes, (data, mediaType) => {
|
|
83
|
+
collectSchema(data, mediaType.schema);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function collectRequestBody(data, requestBody) {
|
|
87
|
+
collect(data, requestBody, (data, requestBody) => {
|
|
88
|
+
collectRecord(data, requestBody.content, collectMediaType);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function isSchema(obj) {
|
|
92
|
+
return obj && typeof obj === 'object' && obj['type'] !== undefined;
|
|
93
|
+
}
|
|
94
|
+
function collectResponse(data, responses) {
|
|
95
|
+
collect(data, responses, (data, responses) => {
|
|
96
|
+
collectRecord(data, responses.content, collectMediaType);
|
|
97
|
+
collect(data, responses.headers, (data, header) => {
|
|
98
|
+
if (isSchema(header)) {
|
|
99
|
+
collectSchema(data, header);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
collectHeader(data, header);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function collectHeader(data, headers) {
|
|
108
|
+
collect(data, headers, (data, headers) => {
|
|
109
|
+
collectSchema(data, headers.schema);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/collect/collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.collectRecord = exports.collect = void 0;
|
|
4
|
+
const internal_utils_1 = require("../internal-utils");
|
|
5
|
+
function collect(data, obj, func) {
|
|
6
|
+
if (!obj)
|
|
7
|
+
return;
|
|
8
|
+
if (Array.isArray(obj)) {
|
|
9
|
+
for (const o of obj) {
|
|
10
|
+
if (!o)
|
|
11
|
+
continue;
|
|
12
|
+
func(data, o);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
func(data, obj);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.collect = collect;
|
|
20
|
+
function collectRecord(data, obj, func) {
|
|
21
|
+
if (!obj)
|
|
22
|
+
return;
|
|
23
|
+
for (const key in obj) {
|
|
24
|
+
if (!(0, internal_utils_1.isOpenApiObjectProperty)(key))
|
|
25
|
+
continue;
|
|
26
|
+
const value = obj[key];
|
|
27
|
+
if (!value)
|
|
28
|
+
continue;
|
|
29
|
+
func(data, value, key);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.collectRecord = collectRecord;
|
|
33
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/collect/helpers.ts"],"names":[],"mappings":";;;AACA,sDAA4D;AAE5D,SAAgB,OAAO,CACrB,IAA0B,EAC1B,GAAwB,EACxB,IAA+D;IAE/D,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACtB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;YACnB,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACf;KACF;SAAM;QACL,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACjB;AACH,CAAC;AAdD,0BAcC;AAED,SAAgB,aAAa,CAC3B,IAA0B,EAC1B,GAAkC,EAClC,IAA4E;IAE5E,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,IAAI,CAAC,IAAA,wCAAuB,EAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;KACxB;AACH,CAAC;AAZD,sCAYC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { OpenApiCollectorData } from './types';
|
|
2
|
+
export declare function collect<T>(data: OpenApiCollectorData, obj: T | T[] | undefined, func: (data: OpenApiCollectorData, obj: NonNullable<T>) => void): void;
|
|
3
|
+
export declare function collectRecord<T>(data: OpenApiCollectorData, obj: Record<string, T> | undefined, func: (data: OpenApiCollectorData, obj: NonNullable<T>, key: string) => void): void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { isOpenApiObjectProperty } from '../internal-utils';
|
|
2
|
+
export function collect(data, obj, func) {
|
|
3
|
+
if (!obj)
|
|
4
|
+
return;
|
|
5
|
+
if (Array.isArray(obj)) {
|
|
6
|
+
for (const o of obj) {
|
|
7
|
+
if (!o)
|
|
8
|
+
continue;
|
|
9
|
+
func(data, o);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
func(data, obj);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function collectRecord(data, obj, func) {
|
|
17
|
+
if (!obj)
|
|
18
|
+
return;
|
|
19
|
+
for (const key in obj) {
|
|
20
|
+
if (!isOpenApiObjectProperty(key))
|
|
21
|
+
continue;
|
|
22
|
+
const value = obj[key];
|
|
23
|
+
if (!value)
|
|
24
|
+
continue;
|
|
25
|
+
func(data, value, key);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/collect/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,UAAU,OAAO,CACrB,IAA0B,EAC1B,GAAwB,EACxB,IAA+D;IAE/D,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACtB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;YACnB,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACf;KACF;SAAM;QACL,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACjB;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAA0B,EAC1B,GAAkC,EAClC,IAA4E;IAE5E,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;KACxB;AACH,CAAC"}
|
|
@@ -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("./collector"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./helpers"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/collect/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,oDAA0B;AAC1B,kDAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/collect/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/collect/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Deref, OpenApiDocument, OpenApiHttpMethod, OpenApiOperation, OpenApiPathItem, OpenApiSchema } from '../parse';
|
|
2
|
+
export type OpenApiCollectorEndpointInfo = {
|
|
3
|
+
path: string;
|
|
4
|
+
method: OpenApiHttpMethod;
|
|
5
|
+
pathItem: Deref<OpenApiPathItem>;
|
|
6
|
+
operation: Deref<OpenApiOperation>;
|
|
7
|
+
};
|
|
8
|
+
export type OpenApiCollectorData = {
|
|
9
|
+
documents: Deref<OpenApiDocument>[];
|
|
10
|
+
schemas: Map<string, Deref<OpenApiSchema>>;
|
|
11
|
+
endpoints: Map<string, OpenApiCollectorEndpointInfo>;
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/collect/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isOpenApiObjectProperty = void 0;
|
|
4
|
+
function isOpenApiObjectProperty(propertyName) {
|
|
5
|
+
return !propertyName.startsWith('$') && !propertyName.startsWith('x-');
|
|
6
|
+
}
|
|
7
|
+
exports.isOpenApiObjectProperty = isOpenApiObjectProperty;
|
|
8
|
+
//# sourceMappingURL=internal-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-utils.cjs","sourceRoot":"","sources":["../../../../../packages/core/src/lib/internal-utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,uBAAuB,CACrC,YAAe;IAEf,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC;AAJD,0DAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isOpenApiObjectProperty<T extends string>(propertyName: T): propertyName is Exclude<T, `$${string}` | `x-${string}`>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-utils.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/internal-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,uBAAuB,CACrC,YAAe;IAEf,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDerefProxy = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
function createDerefProxy(obj, source, ref) {
|
|
6
|
+
return new Proxy(obj, new DerefProxyHandler(source, ref));
|
|
7
|
+
}
|
|
8
|
+
exports.createDerefProxy = createDerefProxy;
|
|
9
|
+
const propertiesNotDerivedFromRef = ['title'];
|
|
10
|
+
class DerefProxyHandler {
|
|
11
|
+
constructor(_source, _ref) {
|
|
12
|
+
this._source = _source;
|
|
13
|
+
this._ref = _ref;
|
|
14
|
+
this._overwrittenValues = {};
|
|
15
|
+
}
|
|
16
|
+
get(target, prop) {
|
|
17
|
+
var _a, _b, _c;
|
|
18
|
+
if (prop === '$ref') {
|
|
19
|
+
return this._ref;
|
|
20
|
+
}
|
|
21
|
+
else if (prop === '$src') {
|
|
22
|
+
return this._source;
|
|
23
|
+
}
|
|
24
|
+
return ((_b = (_a = this._overwrittenValues[prop]) !== null && _a !== void 0 ? _a : target[prop]) !== null && _b !== void 0 ? _b : (propertiesNotDerivedFromRef.includes(prop)
|
|
25
|
+
? undefined
|
|
26
|
+
: (_c = this._ref) === null || _c === void 0 ? void 0 : _c[prop]));
|
|
27
|
+
}
|
|
28
|
+
set(target, prop, value) {
|
|
29
|
+
if (prop === '$ref' && (typeof value === 'object' || typeof value === 'undefined')) {
|
|
30
|
+
this._ref = !value ? undefined : value;
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
if (prop === '$src') {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
this._overwrittenValues[prop] = value;
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
has(target, prop) {
|
|
40
|
+
return prop in target || (!(0, utils_1.isNullish)(this._ref) && prop in this._ref);
|
|
41
|
+
}
|
|
42
|
+
ownKeys(target) {
|
|
43
|
+
return Array.from(new Set([...Object.keys(target), ...(!(0, utils_1.isNullish)(this._ref) ? Object.keys(this._ref) : []), '$ref', '$src']));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=deref-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deref-proxy.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/parse/deref-proxy.ts"],"names":[],"mappings":";;;AAEA,oCAAqC;AAErC,SAAgB,gBAAgB,CAC9B,GAAM,EACN,MAAsB,EACtB,GAAc;IAEd,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAa,CAAC;AACxE,CAAC;AAND,4CAMC;AAED,MAAM,2BAA2B,GAAkB,CAAC,OAAO,CAAC,CAAC;AAE7D,MAAM,iBAAiB;IAGrB,YAA6B,OAAuB,EAAU,IAAe;QAAhD,YAAO,GAAP,OAAO,CAAgB;QAAU,SAAI,GAAJ,IAAI,CAAW;QAF5D,uBAAkB,GAAiC,EAAE,CAAC;IAES,CAAC;IAE1E,GAAG,CAAC,MAAS,EAAE,IAAiB;;QACrC,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;QAED,OAAO,CACL,MAAA,MAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mCAC5B,MAAuC,CAAC,IAAI,CAAC,mCAC9C,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAC,IAAI,CAAC,IAAiD,0CAAG,IAAI,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;IAEM,GAAG,CAAC,MAAS,EAAE,IAAiB,EAAE,KAAc;QACrD,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC,EAAE;YAClF,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,KAAkB,CAAC;YACrD,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,GAAG,CAAC,MAAS,EAAE,IAAiB;QACrC,OAAO,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAEM,OAAO,CAAC,MAAS;QACtB,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAC5G,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { isNullish } from '../utils';
|
|
2
|
+
export function createDerefProxy(obj, source, ref) {
|
|
3
|
+
return new Proxy(obj, new DerefProxyHandler(source, ref));
|
|
4
|
+
}
|
|
5
|
+
const propertiesNotDerivedFromRef = ['title'];
|
|
6
|
+
class DerefProxyHandler {
|
|
7
|
+
constructor(_source, _ref) {
|
|
8
|
+
this._source = _source;
|
|
9
|
+
this._ref = _ref;
|
|
10
|
+
this._overwrittenValues = {};
|
|
11
|
+
}
|
|
12
|
+
get(target, prop) {
|
|
13
|
+
var _a, _b, _c;
|
|
14
|
+
if (prop === '$ref') {
|
|
15
|
+
return this._ref;
|
|
16
|
+
}
|
|
17
|
+
else if (prop === '$src') {
|
|
18
|
+
return this._source;
|
|
19
|
+
}
|
|
20
|
+
return ((_b = (_a = this._overwrittenValues[prop]) !== null && _a !== void 0 ? _a : target[prop]) !== null && _b !== void 0 ? _b : (propertiesNotDerivedFromRef.includes(prop)
|
|
21
|
+
? undefined
|
|
22
|
+
: (_c = this._ref) === null || _c === void 0 ? void 0 : _c[prop]));
|
|
23
|
+
}
|
|
24
|
+
set(target, prop, value) {
|
|
25
|
+
if (prop === '$ref' && (typeof value === 'object' || typeof value === 'undefined')) {
|
|
26
|
+
this._ref = !value ? undefined : value;
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
if (prop === '$src') {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
this._overwrittenValues[prop] = value;
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
has(target, prop) {
|
|
36
|
+
return prop in target || (!isNullish(this._ref) && prop in this._ref);
|
|
37
|
+
}
|
|
38
|
+
ownKeys(target) {
|
|
39
|
+
return Array.from(new Set([...Object.keys(target), ...(!isNullish(this._ref) ? Object.keys(this._ref) : []), '$ref', '$src']));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=deref-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deref-proxy.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/parse/deref-proxy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,UAAU,gBAAgB,CAC9B,GAAM,EACN,MAAsB,EACtB,GAAc;IAEd,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAa,CAAC;AACxE,CAAC;AAED,MAAM,2BAA2B,GAAkB,CAAC,OAAO,CAAC,CAAC;AAE7D,MAAM,iBAAiB;IAGrB,YAA6B,OAAuB,EAAU,IAAe;QAAhD,YAAO,GAAP,OAAO,CAAgB;QAAU,SAAI,GAAJ,IAAI,CAAW;QAF5D,uBAAkB,GAAiC,EAAE,CAAC;IAES,CAAC;IAE1E,GAAG,CAAC,MAAS,EAAE,IAAiB;;QACrC,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;QAED,OAAO,CACL,MAAA,MAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,mCAC5B,MAAuC,CAAC,IAAI,CAAC,mCAC9C,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAC,IAAI,CAAC,IAAiD,0CAAG,IAAI,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;IAEM,GAAG,CAAC,MAAS,EAAE,IAAiB,EAAE,KAAc;QACrD,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC,EAAE;YAClF,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,KAAkB,CAAC;YACrD,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,GAAG,CAAC,MAAS,EAAE,IAAiB;QACrC,OAAO,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAEM,OAAO,CAAC,MAAS;QACtB,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAC5G,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -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("./openapi-types"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./parser"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/parse/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,mDAAyB;AACzB,kDAAwB"}
|