@goast/core 0.6.0 → 0.7.0-beta.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 +0 -4
- package/dist/mod.d.ts +31 -0
- package/{script → dist}/src/ast/node.d.ts +3 -4
- package/{esm → dist}/src/ast/node.js +3 -9
- package/{esm → dist}/src/codegen/config.d.ts +2 -3
- package/{script → dist}/src/codegen/endpoints-generator.d.ts +4 -5
- package/{esm → dist}/src/codegen/endpoints-generator.js +1 -1
- package/{script → dist}/src/codegen/generator.d.ts +7 -8
- package/{esm → dist}/src/codegen/generator.js +4 -21
- package/{esm → dist}/src/codegen/internal-utils.d.ts +0 -1
- package/{esm → dist}/src/codegen/internal-utils.js +0 -1
- package/{script → dist}/src/codegen/schemas-generator.d.ts +4 -5
- package/{esm → dist}/src/codegen/schemas-generator.js +1 -2
- package/{esm → dist}/src/codegen/services-generator.d.ts +4 -5
- package/{esm → dist}/src/codegen/services-generator.js +1 -1
- package/{script → dist}/src/codegen/types.d.ts +3 -4
- package/dist/src/collect/collector.d.ts +4 -0
- package/{esm → dist}/src/collect/collector.js +6 -8
- package/{esm → dist}/src/collect/helpers.d.ts +2 -3
- package/{script → dist}/src/collect/types.d.ts +2 -3
- package/{esm → dist}/src/internal-utils.d.ts +0 -1
- package/dist/src/parse/deref-proxy.d.ts +3 -0
- package/{esm → dist}/src/parse/deref-proxy.js +7 -21
- package/{esm → dist}/src/parse/openapi-types.d.ts +0 -1
- package/{esm → dist}/src/parse/parser.d.ts +3 -4
- package/{esm → dist}/src/parse/parser.js +7 -20
- package/{script → dist}/src/parse/types.d.ts +3 -4
- package/{script → dist}/src/transform/api-types.d.ts +3 -4
- package/{esm → dist}/src/transform/helpers.d.ts +4 -5
- package/{esm → dist}/src/transform/helpers.js +5 -15
- package/dist/src/transform/transform-document.d.ts +4 -0
- package/{esm → dist}/src/transform/transform-document.js +2 -4
- package/{esm → dist}/src/transform/transform-endpoint.d.ts +3 -4
- package/{esm → dist}/src/transform/transform-endpoint.js +10 -17
- package/dist/src/transform/transform-schema.d.ts +5 -0
- package/{esm → dist}/src/transform/transform-schema.js +8 -12
- package/dist/src/transform/transformer.d.ts +4 -0
- package/{esm → dist}/src/transform/types.d.ts +4 -5
- package/{script → dist}/src/utils/action-provider.d.ts +2 -3
- package/{esm → dist}/src/utils/action-provider.js +3 -7
- package/{esm → dist}/src/utils/api-data.utils.d.ts +1 -2
- package/{esm → dist}/src/utils/array.utils.d.ts +0 -1
- package/{script → dist}/src/utils/asset-manager.d.ts +0 -1
- package/{esm → dist}/src/utils/asset-manager.js +2 -8
- package/{esm → dist}/src/utils/class.utils.d.ts +0 -1
- package/{esm → dist}/src/utils/class.utils.js +0 -1
- package/{script → dist}/src/utils/common.utils.d.ts +1 -2
- package/{esm → dist}/src/utils/condition.d.ts +0 -1
- package/dist/src/utils/endpoint.utils.d.ts +2 -0
- package/{esm → dist}/src/utils/error.utils.d.ts +0 -1
- package/{esm → dist}/src/utils/factory.d.ts +2 -3
- package/{esm → dist}/src/utils/factory.js +3 -7
- package/{esm → dist}/src/utils/file-system.utils.d.ts +2 -3
- package/{esm → dist}/src/utils/generator.utils.d.ts +0 -1
- package/{esm → dist}/src/utils/object.utils.d.ts +0 -1
- package/{esm → dist}/src/utils/object.utils.js +2 -11
- package/dist/src/utils/schema-factory.d.ts +41 -0
- package/dist/src/utils/schema-factory.js +132 -0
- package/{esm → dist}/src/utils/schema.utils.d.ts +2 -3
- package/{esm → dist}/src/utils/schema.utils.js +1 -5
- package/{esm → dist}/src/utils/source-builder.d.ts +5 -6
- package/{esm → dist}/src/utils/source-builder.js +19 -54
- package/{script → dist}/src/utils/string-builder/options.d.ts +0 -1
- package/{script → dist}/src/utils/string-builder/string-builder.d.ts +2 -3
- package/{esm → dist}/src/utils/string-builder/string-builder.js +2 -12
- package/{esm → dist}/src/utils/string-builder/utils.d.ts +2 -3
- package/{esm → dist}/src/utils/string-builder/utils.js +4 -6
- package/{script → dist}/src/utils/string.utils.d.ts +2 -3
- package/{esm → dist}/src/utils/string.utils.js +9 -15
- package/{esm → dist}/src/utils/string.utils.types.d.ts +0 -1
- package/{esm → dist}/src/utils/type.utils.d.ts +0 -1
- package/{script → dist}/src/utils/yaml-info.d.ts +0 -1
- package/{esm → dist}/src/utils/yaml-info.js +9 -6
- package/package.json +23 -16
- package/esm/_dnt.shims.d.ts +0 -11
- package/esm/_dnt.shims.d.ts.map +0 -1
- package/esm/_dnt.shims.js +0 -66
- package/esm/mod.d.ts +0 -32
- package/esm/mod.d.ts.map +0 -1
- package/esm/package.json +0 -3
- package/esm/src/ast/node.d.ts +0 -17
- package/esm/src/ast/node.d.ts.map +0 -1
- package/esm/src/codegen/config.d.ts.map +0 -1
- package/esm/src/codegen/endpoints-generator.d.ts +0 -18
- package/esm/src/codegen/endpoints-generator.d.ts.map +0 -1
- package/esm/src/codegen/generator.d.ts +0 -39
- package/esm/src/codegen/generator.d.ts.map +0 -1
- package/esm/src/codegen/internal-utils.d.ts.map +0 -1
- package/esm/src/codegen/schemas-generator.d.ts +0 -19
- package/esm/src/codegen/schemas-generator.d.ts.map +0 -1
- package/esm/src/codegen/services-generator.d.ts.map +0 -1
- package/esm/src/codegen/types.d.ts +0 -19
- package/esm/src/codegen/types.d.ts.map +0 -1
- package/esm/src/collect/collector.d.ts +0 -5
- package/esm/src/collect/collector.d.ts.map +0 -1
- package/esm/src/collect/helpers.d.ts.map +0 -1
- package/esm/src/collect/types.d.ts +0 -14
- package/esm/src/collect/types.d.ts.map +0 -1
- package/esm/src/internal-utils.d.ts.map +0 -1
- package/esm/src/parse/deref-proxy.d.ts +0 -4
- package/esm/src/parse/deref-proxy.d.ts.map +0 -1
- package/esm/src/parse/openapi-types.d.ts.map +0 -1
- package/esm/src/parse/parser.d.ts.map +0 -1
- package/esm/src/parse/types.d.ts +0 -28
- package/esm/src/parse/types.d.ts.map +0 -1
- package/esm/src/transform/api-types.d.ts +0 -211
- package/esm/src/transform/api-types.d.ts.map +0 -1
- package/esm/src/transform/helpers.d.ts.map +0 -1
- package/esm/src/transform/transform-document.d.ts +0 -5
- package/esm/src/transform/transform-document.d.ts.map +0 -1
- package/esm/src/transform/transform-endpoint.d.ts.map +0 -1
- package/esm/src/transform/transform-schema.d.ts +0 -6
- package/esm/src/transform/transform-schema.d.ts.map +0 -1
- package/esm/src/transform/transformer.d.ts +0 -5
- package/esm/src/transform/transformer.d.ts.map +0 -1
- package/esm/src/transform/types.d.ts.map +0 -1
- package/esm/src/utils/action-provider.d.ts +0 -29
- package/esm/src/utils/action-provider.d.ts.map +0 -1
- package/esm/src/utils/api-data.utils.d.ts.map +0 -1
- package/esm/src/utils/array.utils.d.ts.map +0 -1
- package/esm/src/utils/asset-manager.d.ts +0 -9
- package/esm/src/utils/asset-manager.d.ts.map +0 -1
- package/esm/src/utils/class.utils.d.ts.map +0 -1
- package/esm/src/utils/common.utils.d.ts +0 -16
- package/esm/src/utils/common.utils.d.ts.map +0 -1
- package/esm/src/utils/condition.d.ts.map +0 -1
- package/esm/src/utils/endpoint.utils.d.ts +0 -3
- package/esm/src/utils/endpoint.utils.d.ts.map +0 -1
- package/esm/src/utils/error.utils.d.ts.map +0 -1
- package/esm/src/utils/factory.d.ts.map +0 -1
- package/esm/src/utils/file-system.utils.d.ts.map +0 -1
- package/esm/src/utils/generator.utils.d.ts.map +0 -1
- package/esm/src/utils/object.utils.d.ts.map +0 -1
- package/esm/src/utils/schema.utils.d.ts.map +0 -1
- package/esm/src/utils/source-builder.d.ts.map +0 -1
- package/esm/src/utils/string-builder/options.d.ts +0 -15
- package/esm/src/utils/string-builder/options.d.ts.map +0 -1
- package/esm/src/utils/string-builder/string-builder.d.ts +0 -73
- package/esm/src/utils/string-builder/string-builder.d.ts.map +0 -1
- package/esm/src/utils/string-builder/utils.d.ts.map +0 -1
- package/esm/src/utils/string.utils.d.ts +0 -149
- package/esm/src/utils/string.utils.d.ts.map +0 -1
- package/esm/src/utils/string.utils.types.d.ts.map +0 -1
- package/esm/src/utils/type.utils.d.ts.map +0 -1
- package/esm/src/utils/yaml-info.d.ts +0 -13
- package/esm/src/utils/yaml-info.d.ts.map +0 -1
- package/script/_dnt.shims.d.ts +0 -11
- package/script/_dnt.shims.d.ts.map +0 -1
- package/script/_dnt.shims.js +0 -75
- package/script/mod.d.ts +0 -32
- package/script/mod.d.ts.map +0 -1
- package/script/mod.js +0 -36
- package/script/package.json +0 -3
- package/script/src/ast/node.d.ts.map +0 -1
- package/script/src/ast/node.js +0 -33
- package/script/src/codegen/config.d.ts +0 -36
- package/script/src/codegen/config.d.ts.map +0 -1
- package/script/src/codegen/config.js +0 -12
- package/script/src/codegen/endpoints-generator.d.ts.map +0 -1
- package/script/src/codegen/endpoints-generator.js +0 -35
- package/script/src/codegen/generator.d.ts.map +0 -1
- package/script/src/codegen/generator.js +0 -134
- package/script/src/codegen/internal-utils.d.ts +0 -2
- package/script/src/codegen/internal-utils.d.ts.map +0 -1
- package/script/src/codegen/internal-utils.js +0 -9
- package/script/src/codegen/schemas-generator.d.ts.map +0 -1
- package/script/src/codegen/schemas-generator.js +0 -49
- package/script/src/codegen/services-generator.d.ts +0 -18
- package/script/src/codegen/services-generator.d.ts.map +0 -1
- package/script/src/codegen/services-generator.js +0 -35
- package/script/src/codegen/types.d.ts.map +0 -1
- package/script/src/codegen/types.js +0 -2
- package/script/src/collect/collector.d.ts +0 -5
- package/script/src/collect/collector.d.ts.map +0 -1
- package/script/src/collect/collector.js +0 -122
- package/script/src/collect/helpers.d.ts +0 -5
- package/script/src/collect/helpers.d.ts.map +0 -1
- package/script/src/collect/helpers.js +0 -37
- package/script/src/collect/types.d.ts.map +0 -1
- package/script/src/collect/types.js +0 -2
- package/script/src/internal-utils.d.ts +0 -2
- package/script/src/internal-utils.d.ts.map +0 -1
- package/script/src/internal-utils.js +0 -6
- package/script/src/parse/deref-proxy.d.ts +0 -4
- package/script/src/parse/deref-proxy.d.ts.map +0 -1
- package/script/src/parse/deref-proxy.js +0 -71
- package/script/src/parse/openapi-types.d.ts +0 -902
- package/script/src/parse/openapi-types.d.ts.map +0 -1
- package/script/src/parse/openapi-types.js +0 -2
- package/script/src/parse/parser.d.ts +0 -18
- package/script/src/parse/parser.d.ts.map +0 -1
- package/script/src/parse/parser.js +0 -183
- package/script/src/parse/types.d.ts.map +0 -1
- package/script/src/parse/types.js +0 -5
- package/script/src/transform/api-types.d.ts.map +0 -1
- package/script/src/transform/api-types.js +0 -2
- package/script/src/transform/helpers.d.ts +0 -58
- package/script/src/transform/helpers.d.ts.map +0 -1
- package/script/src/transform/helpers.js +0 -211
- package/script/src/transform/transform-document.d.ts +0 -5
- package/script/src/transform/transform-document.d.ts.map +0 -1
- package/script/src/transform/transform-document.js +0 -34
- package/script/src/transform/transform-endpoint.d.ts +0 -5
- package/script/src/transform/transform-endpoint.d.ts.map +0 -1
- package/script/src/transform/transform-endpoint.js +0 -273
- package/script/src/transform/transform-schema.d.ts +0 -6
- package/script/src/transform/transform-schema.d.ts.map +0 -1
- package/script/src/transform/transform-schema.js +0 -196
- package/script/src/transform/transformer.d.ts +0 -5
- package/script/src/transform/transformer.d.ts.map +0 -1
- package/script/src/transform/transformer.js +0 -45
- package/script/src/transform/types.d.ts +0 -36
- package/script/src/transform/types.d.ts.map +0 -1
- package/script/src/transform/types.js +0 -6
- package/script/src/utils/action-provider.d.ts.map +0 -1
- package/script/src/utils/action-provider.js +0 -33
- package/script/src/utils/api-data.utils.d.ts +0 -3
- package/script/src/utils/api-data.utils.d.ts.map +0 -1
- package/script/src/utils/api-data.utils.js +0 -42
- package/script/src/utils/array.utils.d.ts +0 -2
- package/script/src/utils/array.utils.d.ts.map +0 -1
- package/script/src/utils/array.utils.js +0 -10
- package/script/src/utils/asset-manager.d.ts.map +0 -1
- package/script/src/utils/asset-manager.js +0 -55
- package/script/src/utils/class.utils.d.ts +0 -8
- package/script/src/utils/class.utils.d.ts.map +0 -1
- package/script/src/utils/class.utils.js +0 -33
- package/script/src/utils/common.utils.d.ts.map +0 -1
- package/script/src/utils/common.utils.js +0 -84
- package/script/src/utils/condition.d.ts +0 -4
- package/script/src/utils/condition.d.ts.map +0 -1
- package/script/src/utils/condition.js +0 -7
- package/script/src/utils/endpoint.utils.d.ts +0 -3
- package/script/src/utils/endpoint.utils.d.ts.map +0 -1
- package/script/src/utils/endpoint.utils.js +0 -11
- package/script/src/utils/error.utils.d.ts +0 -2
- package/script/src/utils/error.utils.d.ts.map +0 -1
- package/script/src/utils/error.utils.js +0 -6
- package/script/src/utils/factory.d.ts +0 -21
- package/script/src/utils/factory.d.ts.map +0 -1
- package/script/src/utils/factory.js +0 -33
- package/script/src/utils/file-system.utils.d.ts +0 -11
- package/script/src/utils/file-system.utils.d.ts.map +0 -1
- package/script/src/utils/file-system.utils.js +0 -79
- package/script/src/utils/generator.utils.d.ts +0 -2
- package/script/src/utils/generator.utils.d.ts.map +0 -1
- package/script/src/utils/generator.utils.js +0 -9
- package/script/src/utils/object.utils.d.ts +0 -3
- package/script/src/utils/object.utils.d.ts.map +0 -1
- package/script/src/utils/object.utils.js +0 -40
- package/script/src/utils/schema.utils.d.ts +0 -12
- package/script/src/utils/schema.utils.d.ts.map +0 -1
- package/script/src/utils/schema.utils.js +0 -206
- package/script/src/utils/source-builder.d.ts +0 -236
- package/script/src/utils/source-builder.d.ts.map +0 -1
- package/script/src/utils/source-builder.js +0 -458
- package/script/src/utils/string-builder/options.d.ts.map +0 -1
- package/script/src/utils/string-builder/options.js +0 -10
- package/script/src/utils/string-builder/string-builder.d.ts.map +0 -1
- package/script/src/utils/string-builder/string-builder.js +0 -153
- package/script/src/utils/string-builder/utils.d.ts +0 -22
- package/script/src/utils/string-builder/utils.d.ts.map +0 -1
- package/script/src/utils/string-builder/utils.js +0 -37
- package/script/src/utils/string.utils.d.ts.map +0 -1
- package/script/src/utils/string.utils.js +0 -382
- package/script/src/utils/string.utils.types.d.ts +0 -150
- package/script/src/utils/string.utils.types.d.ts.map +0 -1
- package/script/src/utils/string.utils.types.js +0 -2
- package/script/src/utils/type.utils.d.ts +0 -57
- package/script/src/utils/type.utils.d.ts.map +0 -1
- package/script/src/utils/type.utils.js +0 -10
- package/script/src/utils/yaml-info.d.ts.map +0 -1
- package/script/src/utils/yaml-info.js +0 -38
- package/src/_dnt.shims.ts +0 -69
- package/src/mod.ts +0 -35
- package/src/src/ast/node.ts +0 -46
- package/src/src/codegen/config.ts +0 -50
- package/src/src/codegen/endpoints-generator.ts +0 -72
- package/src/src/codegen/generator.ts +0 -192
- package/src/src/codegen/internal-utils.ts +0 -6
- package/src/src/codegen/schemas-generator.ts +0 -87
- package/src/src/codegen/services-generator.ts +0 -77
- package/src/src/codegen/types.ts +0 -37
- package/src/src/collect/collector.ts +0 -142
- package/src/src/collect/helpers.ts +0 -36
- package/src/src/collect/types.ts +0 -21
- package/src/src/internal-utils.ts +0 -5
- package/src/src/parse/deref-proxy.ts +0 -70
- package/src/src/parse/openapi-types.ts +0 -953
- package/src/src/parse/parser.ts +0 -206
- package/src/src/parse/types.ts +0 -28
- package/src/src/transform/api-types.ts +0 -259
- package/src/src/transform/helpers.ts +0 -251
- package/src/src/transform/transform-document.ts +0 -35
- package/src/src/transform/transform-endpoint.ts +0 -332
- package/src/src/transform/transform-schema.ts +0 -232
- package/src/src/transform/transformer.ts +0 -53
- package/src/src/transform/types.ts +0 -52
- package/src/src/utils/action-provider.ts +0 -58
- package/src/src/utils/api-data.utils.ts +0 -48
- package/src/src/utils/array.utils.ts +0 -7
- package/src/src/utils/asset-manager.ts +0 -51
- package/src/src/utils/class.utils.ts +0 -40
- package/src/src/utils/common.utils.ts +0 -86
- package/src/src/utils/condition.ts +0 -7
- package/src/src/utils/endpoint.utils.ts +0 -10
- package/src/src/utils/error.utils.ts +0 -3
- package/src/src/utils/factory.ts +0 -42
- package/src/src/utils/file-system.utils.ts +0 -97
- package/src/src/utils/generator.utils.ts +0 -6
- package/src/src/utils/object.utils.ts +0 -32
- package/src/src/utils/schema.utils.ts +0 -240
- package/src/src/utils/source-builder.ts +0 -597
- package/src/src/utils/string-builder/options.ts +0 -19
- package/src/src/utils/string-builder/string-builder.ts +0 -165
- package/src/src/utils/string-builder/utils.ts +0 -69
- package/src/src/utils/string.utils.ts +0 -394
- package/src/src/utils/string.utils.types.ts +0 -179
- package/src/src/utils/type.utils.ts +0 -93
- package/src/src/utils/yaml-info.ts +0 -48
- /package/{esm → dist}/mod.js +0 -0
- /package/{esm → dist}/src/codegen/config.js +0 -0
- /package/{esm → dist}/src/codegen/types.js +0 -0
- /package/{esm → dist}/src/collect/helpers.js +0 -0
- /package/{esm → dist}/src/collect/types.js +0 -0
- /package/{esm → dist}/src/internal-utils.js +0 -0
- /package/{esm → dist}/src/parse/openapi-types.js +0 -0
- /package/{esm → dist}/src/parse/types.js +0 -0
- /package/{esm → dist}/src/transform/api-types.js +0 -0
- /package/{esm → dist}/src/transform/transformer.js +0 -0
- /package/{esm → dist}/src/transform/types.js +0 -0
- /package/{esm → dist}/src/utils/api-data.utils.js +0 -0
- /package/{esm → dist}/src/utils/array.utils.js +0 -0
- /package/{esm → dist}/src/utils/common.utils.js +0 -0
- /package/{esm → dist}/src/utils/condition.js +0 -0
- /package/{esm → dist}/src/utils/endpoint.utils.js +0 -0
- /package/{esm → dist}/src/utils/error.utils.js +0 -0
- /package/{esm → dist}/src/utils/file-system.utils.js +0 -0
- /package/{esm → dist}/src/utils/generator.utils.js +0 -0
- /package/{esm → dist}/src/utils/string-builder/options.js +0 -0
- /package/{esm → dist}/src/utils/string.utils.types.js +0 -0
- /package/{esm → dist}/src/utils/type.utils.js +0 -0
package/src/src/codegen/types.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { ApiData } from '../transform/api-types.js';
|
|
2
|
-
import type { MaybePromise } from '../utils/type.utils.js';
|
|
3
|
-
import type { OpenApiGeneratorConfig } from './config.js';
|
|
4
|
-
|
|
5
|
-
export type AnyConfig = Readonly<Record<string, unknown>>;
|
|
6
|
-
export type OpenApiGeneratorInput = Record<string, unknown>;
|
|
7
|
-
export type OpenApiGeneratorOutput = Record<string, unknown> | undefined;
|
|
8
|
-
export type OpenApiGeneratorContext<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput> = {
|
|
9
|
-
data: ApiData;
|
|
10
|
-
input: TInput;
|
|
11
|
-
config: OpenApiGeneratorConfig;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export type OpenApiGenerationProviderContext<TInput extends OpenApiGeneratorInput, TConfig extends AnyConfig> =
|
|
15
|
-
& Omit<
|
|
16
|
-
OpenApiGeneratorContext<TInput>,
|
|
17
|
-
'config'
|
|
18
|
-
>
|
|
19
|
-
& {
|
|
20
|
-
config: OpenApiGeneratorConfig & TConfig;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export interface OpenApiGenerationProvider<
|
|
24
|
-
TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput,
|
|
25
|
-
TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput,
|
|
26
|
-
TConfig extends AnyConfig = AnyConfig,
|
|
27
|
-
> {
|
|
28
|
-
generate(
|
|
29
|
-
...args: Parameters<OpenApiGenerationProviderFn<TInput, TOutput, TConfig>>
|
|
30
|
-
): ReturnType<OpenApiGenerationProviderFn<TInput, TOutput, TConfig>>;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export type OpenApiGenerationProviderFn<
|
|
34
|
-
TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput,
|
|
35
|
-
TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput,
|
|
36
|
-
TConfig extends AnyConfig = AnyConfig,
|
|
37
|
-
> = (context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig>) => MaybePromise<TOutput>;
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
OpenApiDocument,
|
|
3
|
-
OpenApiHeader,
|
|
4
|
-
OpenApiMediaType,
|
|
5
|
-
OpenApiParameter,
|
|
6
|
-
OpenApiPathItem,
|
|
7
|
-
OpenApiRequestBody,
|
|
8
|
-
OpenApiResponse,
|
|
9
|
-
OpenApiSchema,
|
|
10
|
-
} from '../parse/openapi-types.js';
|
|
11
|
-
import type { Deref } from '../parse/types.js';
|
|
12
|
-
import { collect, collectRecord } from './helpers.js';
|
|
13
|
-
import type { OpenApiCollectorData } from './types.js';
|
|
14
|
-
|
|
15
|
-
type Collect<T> = Deref<T> | Deref<T>[] | undefined;
|
|
16
|
-
|
|
17
|
-
export function collectOpenApi(apis: Deref<OpenApiDocument>[]): OpenApiCollectorData {
|
|
18
|
-
const data: OpenApiCollectorData = {
|
|
19
|
-
documents: [],
|
|
20
|
-
schemas: new Map(),
|
|
21
|
-
endpoints: new Map(),
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
collectDocument(data, apis);
|
|
25
|
-
|
|
26
|
-
return data;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const jsonSchemaProperties = ['$id', 'allOf', 'anyOf', 'oneOf', 'enum', 'not', 'properties', 'title', 'type'];
|
|
30
|
-
|
|
31
|
-
function collectDocument(data: OpenApiCollectorData, documents: Collect<OpenApiDocument>) {
|
|
32
|
-
collect(data, documents, (data, document) => {
|
|
33
|
-
data.documents.push(document);
|
|
34
|
-
collectPaths(data, document.paths);
|
|
35
|
-
collectRecord<Deref<OpenApiSchema>>(data, document.components?.schemas, collectSchema);
|
|
36
|
-
collectRecord<Deref<OpenApiSchema>>(data, document.definitions, collectSchema);
|
|
37
|
-
collectRecord<Deref<OpenApiParameter>>(data, document.components?.parameters, collectParameter);
|
|
38
|
-
collectRecord<Deref<OpenApiParameter>>(data, document.parameters, collectParameter);
|
|
39
|
-
collectRecord<Deref<OpenApiRequestBody>>(data, document.components?.requestBodies, collectRequestBody);
|
|
40
|
-
collectRecord<Deref<OpenApiResponse>>(data, document.components?.responses, collectResponse);
|
|
41
|
-
collectRecord<Deref<OpenApiResponse>>(data, document.responses, collectResponse);
|
|
42
|
-
collectRecord<Deref<OpenApiHeader>>(data, document.components?.headers, collectHeader);
|
|
43
|
-
|
|
44
|
-
if (Object.keys(document).some((key) => jsonSchemaProperties.includes(key))) {
|
|
45
|
-
collectSchema(data, document as Deref<OpenApiSchema>);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function collectPaths(data: OpenApiCollectorData, paths: Collect<Record<string, OpenApiPathItem>>) {
|
|
51
|
-
collect(data, paths, (data, path) => {
|
|
52
|
-
collectRecord<Deref<OpenApiPathItem>>(data, path, collectPathItem);
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function collectPathItem(data: OpenApiCollectorData, pathItems: Collect<OpenApiPathItem>, path: string) {
|
|
57
|
-
collect(data, pathItems, (data, pathItem) => {
|
|
58
|
-
collectParameter(data, pathItem.parameters);
|
|
59
|
-
for (const m of ['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace'] as const) {
|
|
60
|
-
const operation = pathItem[m];
|
|
61
|
-
if (!operation) continue;
|
|
62
|
-
const key = `${operation.$src.file}#${operation.$src.path}`;
|
|
63
|
-
if (data.endpoints.has(key)) continue;
|
|
64
|
-
data.endpoints.set(key, {
|
|
65
|
-
path,
|
|
66
|
-
method: m,
|
|
67
|
-
pathItem,
|
|
68
|
-
operation,
|
|
69
|
-
});
|
|
70
|
-
collectParameter(data, operation.parameters);
|
|
71
|
-
collectRequestBody(data, operation.requestBody);
|
|
72
|
-
collectRecord<Deref<OpenApiResponse>>(data, operation.responses, collectResponse);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function collectSchema(data: OpenApiCollectorData, schemas: Collect<OpenApiSchema>) {
|
|
78
|
-
collect(data, schemas, (data, schema) => {
|
|
79
|
-
const key = `${schema.$src.file}#${schema.$src.path}`;
|
|
80
|
-
if (data.schemas.has(key)) return;
|
|
81
|
-
data.schemas.set(key, schema);
|
|
82
|
-
collectSchema(data, schema.allOf);
|
|
83
|
-
collectSchema(data, schema.anyOf);
|
|
84
|
-
collectSchema(data, schema.oneOf);
|
|
85
|
-
collectSchema(data, schema.items);
|
|
86
|
-
collectSchema(data, schema.not);
|
|
87
|
-
collectRecord<Deref<OpenApiSchema>>(data, schema.properties, collectSchema);
|
|
88
|
-
collectRecord<Deref<OpenApiSchema>>(data, schema.patternProperties, collectSchema);
|
|
89
|
-
collectRecord<Deref<OpenApiSchema>>(data, schema.dependencies, collectSchema);
|
|
90
|
-
collectRecord<Deref<OpenApiSchema>>(data, schema.definitions, collectSchema);
|
|
91
|
-
if (typeof schema.additionalProperties === 'object') {
|
|
92
|
-
collectSchema(data, schema.additionalProperties);
|
|
93
|
-
}
|
|
94
|
-
if (typeof schema.additionalItems === 'object') {
|
|
95
|
-
collectSchema(data, schema.additionalItems);
|
|
96
|
-
}
|
|
97
|
-
if (typeof schema.discriminator === 'object') {
|
|
98
|
-
collectRecord<Deref<OpenApiSchema>>(data, schema.discriminator?.mapping, collectSchema);
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function collectParameter(data: OpenApiCollectorData, parameters: Collect<OpenApiParameter>) {
|
|
104
|
-
collect(data, parameters, (data, parameter) => {
|
|
105
|
-
collectSchema(data, parameter.schema);
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
function collectMediaType(data: OpenApiCollectorData, mediaTypes: Collect<OpenApiMediaType>) {
|
|
110
|
-
collect(data, mediaTypes, (data, mediaType) => {
|
|
111
|
-
collectSchema(data, mediaType.schema);
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function collectRequestBody(data: OpenApiCollectorData, requestBody: Collect<OpenApiRequestBody>) {
|
|
116
|
-
collect(data, requestBody, (data, requestBody) => {
|
|
117
|
-
collectRecord<Deref<OpenApiMediaType>>(data, requestBody.content, collectMediaType);
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
function isSchema(obj: Record<string, unknown>): obj is Deref<OpenApiSchema> {
|
|
122
|
-
return obj && typeof obj === 'object' && obj['type'] !== undefined;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
function collectResponse(data: OpenApiCollectorData, responses: Collect<OpenApiResponse>) {
|
|
126
|
-
collect(data, responses, (data, responses) => {
|
|
127
|
-
collectRecord<Deref<OpenApiMediaType>>(data, responses.content, collectMediaType);
|
|
128
|
-
collect(data, responses.headers, (data, header) => {
|
|
129
|
-
if (isSchema(header)) {
|
|
130
|
-
collectSchema(data, header);
|
|
131
|
-
} else {
|
|
132
|
-
collectHeader(data, header);
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
function collectHeader(data: OpenApiCollectorData, headers: Collect<OpenApiHeader>) {
|
|
139
|
-
collect(data, headers, (data, headers) => {
|
|
140
|
-
collectSchema(data, headers.schema);
|
|
141
|
-
});
|
|
142
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { isOpenApiObjectProperty } from '../internal-utils.js';
|
|
2
|
-
import type { Nullable } from '../utils/type.utils.js';
|
|
3
|
-
import type { OpenApiCollectorData } from './types.js';
|
|
4
|
-
|
|
5
|
-
export function collect<T extends Record<`x-${string}`, unknown>>(
|
|
6
|
-
data: OpenApiCollectorData,
|
|
7
|
-
obj: Nullable<T | Nullable<T>[]>,
|
|
8
|
-
func: (data: OpenApiCollectorData, obj: NonNullable<T>) => void,
|
|
9
|
-
) {
|
|
10
|
-
if (!obj) return;
|
|
11
|
-
if (Array.isArray(obj)) {
|
|
12
|
-
for (const o of obj) {
|
|
13
|
-
if (!o) continue;
|
|
14
|
-
if (o['x-ignore']) continue;
|
|
15
|
-
func(data, o);
|
|
16
|
-
}
|
|
17
|
-
} else {
|
|
18
|
-
if (obj['x-ignore']) return;
|
|
19
|
-
func(data, obj);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function collectRecord<T extends Record<`x-${string}`, unknown>>(
|
|
24
|
-
data: OpenApiCollectorData,
|
|
25
|
-
obj: Nullable<Record<string, Nullable<T>>>,
|
|
26
|
-
func: (data: OpenApiCollectorData, obj: NonNullable<T>, key: string) => void,
|
|
27
|
-
) {
|
|
28
|
-
if (!obj) return;
|
|
29
|
-
for (const key in obj) {
|
|
30
|
-
if (!isOpenApiObjectProperty(key)) continue;
|
|
31
|
-
const value = obj[key];
|
|
32
|
-
if (!value) continue;
|
|
33
|
-
if (value['x-ignore']) continue;
|
|
34
|
-
func(data, value, key);
|
|
35
|
-
}
|
|
36
|
-
}
|
package/src/src/collect/types.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
OpenApiDocument,
|
|
3
|
-
OpenApiHttpMethod,
|
|
4
|
-
OpenApiOperation,
|
|
5
|
-
OpenApiPathItem,
|
|
6
|
-
OpenApiSchema,
|
|
7
|
-
} from '../parse/openapi-types.js';
|
|
8
|
-
import type { Deref } from '../parse/types.js';
|
|
9
|
-
|
|
10
|
-
export type OpenApiCollectorEndpointInfo = {
|
|
11
|
-
path: string;
|
|
12
|
-
method: OpenApiHttpMethod;
|
|
13
|
-
pathItem: Deref<OpenApiPathItem>;
|
|
14
|
-
operation: Deref<OpenApiOperation>;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export type OpenApiCollectorData = {
|
|
18
|
-
documents: Deref<OpenApiDocument>[];
|
|
19
|
-
schemas: Map<string, Deref<OpenApiSchema>>;
|
|
20
|
-
endpoints: Map<string, OpenApiCollectorEndpointInfo>;
|
|
21
|
-
};
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { isNullish } from '../utils/common.utils.js';
|
|
2
|
-
import type { OpenApiObject } from './openapi-types.js';
|
|
3
|
-
import type { Deref, DerefSource } from './types.js';
|
|
4
|
-
|
|
5
|
-
export function createDerefProxy<T extends OpenApiObject<string>>(
|
|
6
|
-
obj: T,
|
|
7
|
-
source: DerefSource<T>,
|
|
8
|
-
ref?: Deref<T>,
|
|
9
|
-
): Deref<T> {
|
|
10
|
-
return new Proxy(obj, new DerefProxyHandler(source, ref)) as Deref<T>;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const propertiesNotDerivedFromRef: PropertyKey[] = ['title'];
|
|
14
|
-
|
|
15
|
-
class DerefProxyHandler<T extends OpenApiObject<string>> implements ProxyHandler<T> {
|
|
16
|
-
private readonly _overwrittenValues: Record<PropertyKey, unknown> = {};
|
|
17
|
-
|
|
18
|
-
constructor(
|
|
19
|
-
private readonly _source: DerefSource<T>,
|
|
20
|
-
private _ref?: Deref<T>,
|
|
21
|
-
) {}
|
|
22
|
-
|
|
23
|
-
public get(target: T, prop: PropertyKey): unknown {
|
|
24
|
-
if (prop === '$ref') {
|
|
25
|
-
return this._ref;
|
|
26
|
-
} else if (prop === '$src') {
|
|
27
|
-
return this._source;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (this._overwrittenValues[prop] !== undefined) {
|
|
31
|
-
return this._overwrittenValues[prop];
|
|
32
|
-
}
|
|
33
|
-
if ((target as Record<PropertyKey, unknown>)[prop] !== undefined) {
|
|
34
|
-
return (target as Record<PropertyKey, unknown>)[prop];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return propertiesNotDerivedFromRef.includes(prop)
|
|
38
|
-
? undefined
|
|
39
|
-
: (this._ref as Record<PropertyKey, unknown> | undefined)?.[prop];
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public set(_target: T, prop: PropertyKey, value: unknown): boolean {
|
|
43
|
-
if (prop === '$ref' && (typeof value === 'object' || typeof value === 'undefined')) {
|
|
44
|
-
this._ref = !value ? undefined : (value as Deref<T>);
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
if (prop === '$src') {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
this._overwrittenValues[prop] = value;
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public has(target: T, prop: PropertyKey): boolean {
|
|
56
|
-
return prop in target || (!isNullish(this._ref) && prop in this._ref);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
public ownKeys(target: T): ArrayLike<string | symbol> {
|
|
60
|
-
return Array.from(
|
|
61
|
-
new Set([
|
|
62
|
-
...Object.getOwnPropertyNames(target),
|
|
63
|
-
...Object.getOwnPropertySymbols(target),
|
|
64
|
-
...(!isNullish(this._ref) ? Object.keys(this._ref) : []),
|
|
65
|
-
'$ref',
|
|
66
|
-
'$src',
|
|
67
|
-
]),
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
}
|