@kubb/plugin-oas 0.0.0-canary-20251028170426 → 0.0.0-canary-20251103132818
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/dist/{SchemaGenerator-DWj6buY0.cjs → SchemaGenerator-RnBn6EoD.cjs} +114 -16
- package/dist/SchemaGenerator-RnBn6EoD.cjs.map +1 -0
- package/dist/{SchemaGenerator-b7XixzRv.js → SchemaGenerator-bd3P5CUh.js} +93 -15
- package/dist/SchemaGenerator-bd3P5CUh.js.map +1 -0
- package/dist/{SchemaMapper-DoL-a6qq.cjs → SchemaMapper-BUV8vhg0.cjs} +1 -1
- package/dist/{SchemaMapper-DoL-a6qq.cjs.map → SchemaMapper-BUV8vhg0.cjs.map} +1 -1
- package/dist/{SchemaMapper-Cx4X1al6.js → SchemaMapper-D30tqRoX.js} +1 -1
- package/dist/{SchemaMapper-Cx4X1al6.js.map → SchemaMapper-D30tqRoX.js.map} +1 -1
- package/dist/{SchemaMapper-CtfTw3hq.d.ts → SchemaMapper-m5TKynWt.d.ts} +1 -1
- package/dist/{OperationGenerator-CRZpkIpZ.d.ts → createGenerator-DlSlv4sR.d.ts} +114 -167
- package/dist/{OperationGenerator-S_1PevQN.d.cts → createGenerator-PIseu7v9.d.cts} +114 -167
- package/dist/{generators-C61FxVIj.js → generators-CJDEf8Kn.js} +6 -6
- package/dist/{generators-C61FxVIj.js.map → generators-CJDEf8Kn.js.map} +1 -1
- package/dist/{generators-B27La9Vd.cjs → generators-udGOxdUV.cjs} +6 -6
- package/dist/{generators-B27La9Vd.cjs.map → generators-udGOxdUV.cjs.map} +1 -1
- package/dist/generators.cjs +2 -7
- package/dist/generators.d.cts +7 -2
- package/dist/generators.d.ts +8 -3
- package/dist/generators.js +3 -5
- package/dist/{getFooter-D5MdeUVv.js → getFooter-CV73pVXj.js} +2 -2
- package/dist/{getFooter-D5MdeUVv.js.map → getFooter-CV73pVXj.js.map} +1 -1
- package/dist/{getFooter-CwjCW4h5.cjs → getFooter-DPh4lxBH.cjs} +3 -3
- package/dist/{getFooter-CwjCW4h5.cjs.map → getFooter-DPh4lxBH.cjs.map} +1 -1
- package/dist/getSchemas-32BHoMO-.js +100 -0
- package/dist/getSchemas-32BHoMO-.js.map +1 -0
- package/dist/getSchemas-Cl0TZ4XY.cjs +113 -0
- package/dist/getSchemas-Cl0TZ4XY.cjs.map +1 -0
- package/dist/hooks.cjs +4 -29
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.cts +3 -17
- package/dist/hooks.d.ts +4 -18
- package/dist/hooks.js +6 -29
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +37 -32
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +57 -2
- package/dist/index.d.ts +58 -3
- package/dist/index.js +32 -24
- package/dist/index.js.map +1 -1
- package/dist/mocks.cjs +1 -1
- package/dist/mocks.d.ts +1 -1
- package/dist/mocks.js +1 -1
- package/dist/{parseFromConfig-CqiiLCPe.js → parseFromConfig-BkUoWC2U.js} +1 -1
- package/dist/parseFromConfig-BkUoWC2U.js.map +1 -0
- package/dist/{parseFromConfig-RR31a98-.cjs → parseFromConfig-EjsCZ0-8.cjs} +1 -1
- package/dist/parseFromConfig-EjsCZ0-8.cjs.map +1 -0
- package/dist/utils.cjs +3 -3
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +27 -23
- package/dist/utils.d.ts +28 -24
- package/dist/utils.js +3 -3
- package/dist/utils.js.map +1 -1
- package/package.json +5 -12
- package/src/OperationGenerator.ts +26 -13
- package/src/SchemaGenerator.ts +18 -10
- package/src/generators/index.ts +0 -1
- package/src/generators/jsonGenerator.ts +4 -4
- package/src/generators/types.ts +13 -14
- package/src/hooks/index.ts +0 -2
- package/src/hooks/useOperationManager.ts +2 -4
- package/src/index.ts +1 -1
- package/src/utils/getBanner.ts +1 -1
- package/src/utils/getParams.ts +1 -2
- package/src/utils/getSchemaFactory.ts +1 -2
- package/src/utils/getSchemas.ts +89 -15
- package/src/utils/index.ts +3 -4
- package/src/utils/parseFromConfig.ts +2 -6
- package/src/utils.tsx +101 -0
- package/dist/Oas-CHC1IC5D.js +0 -56
- package/dist/Oas-CHC1IC5D.js.map +0 -1
- package/dist/Oas-CQrRP_NH.cjs +0 -76
- package/dist/Oas-CQrRP_NH.cjs.map +0 -1
- package/dist/Schema-CZsDEhET.d.cts +0 -38
- package/dist/Schema-DBvtiLS7.d.ts +0 -38
- package/dist/SchemaGenerator-DWj6buY0.cjs.map +0 -1
- package/dist/SchemaGenerator-b7XixzRv.js.map +0 -1
- package/dist/components.cjs +0 -5
- package/dist/components.d.cts +0 -38
- package/dist/components.d.ts +0 -38
- package/dist/components.js +0 -3
- package/dist/getSchemas-Bdg6n9Qk.js +0 -55
- package/dist/getSchemas-Bdg6n9Qk.js.map +0 -1
- package/dist/getSchemas-DY8s2CSl.cjs +0 -68
- package/dist/getSchemas-DY8s2CSl.cjs.map +0 -1
- package/dist/parseFromConfig-CqiiLCPe.js.map +0 -1
- package/dist/parseFromConfig-RR31a98-.cjs.map +0 -1
- package/dist/utils-DYf-j63H.cjs +0 -115
- package/dist/utils-DYf-j63H.cjs.map +0 -1
- package/dist/utils-DaV25sy8.js +0 -95
- package/dist/utils-DaV25sy8.js.map +0 -1
- package/src/components/Oas.tsx +0 -30
- package/src/components/Operation.tsx +0 -20
- package/src/components/Schema.tsx +0 -38
- package/src/components/index.ts +0 -3
- package/src/generators/utils.tsx +0 -114
- package/src/hooks/useOperation.ts +0 -18
- package/src/hooks/useSchema.ts +0 -16
package/dist/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","names":["URLPath","transformers","data: FunctionParamsAST"],"sources":["../src/utils/getComments.ts","../src/utils/getParams.ts"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { URLPath } from '@kubb/core/utils'\n\nimport type { Operation } from '@kubb/oas'\n\nexport function getComments(operation: Operation): string[] {\n return [\n operation.getDescription() && `@description ${operation.getDescription()}`,\n operation.getSummary() && `@summary ${operation.getSummary()}`,\n operation.path && `{@link ${new URLPath(operation.path).URL}}`,\n operation.isDeprecated() && '@deprecated',\n ]\n .filter(Boolean)\n .map((text) => transformers.trim(text))\n}\n","import {
|
|
1
|
+
{"version":3,"file":"utils.cjs","names":["URLPath","transformers","data: FunctionParamsAST"],"sources":["../src/utils/getComments.ts","../src/utils/getParams.ts"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { URLPath } from '@kubb/core/utils'\n\nimport type { Operation } from '@kubb/oas'\n\nexport function getComments(operation: Operation): string[] {\n return [\n operation.getDescription() && `@description ${operation.getDescription()}`,\n operation.getSummary() && `@summary ${operation.getSummary()}`,\n operation.path && `{@link ${new URLPath(operation.path).URL}}`,\n operation.isDeprecated() && '@deprecated',\n ]\n .filter(Boolean)\n .map((text) => transformers.trim(text))\n}\n","import { camelCase, isValidVarName } from '@kubb/core/transformers'\nimport type { FunctionParamsAST } from '@kubb/core/utils'\nimport type { OasTypes } from '@kubb/oas'\nimport { isParameterObject } from '@kubb/oas'\nimport type { Params } from '@kubb/react-fabric/types'\nimport type { OperationSchema } from '../types.ts'\n/**\n *\n * @deprecated\n * TODO move to operationManager hook\n */\nexport function getASTParams(\n operationSchema: OperationSchema | undefined,\n {\n typed = false,\n override,\n }: {\n typed?: boolean\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n): FunctionParamsAST[] {\n if (!operationSchema || !operationSchema.schema.properties || !operationSchema.name) {\n return []\n }\n\n return Object.entries(operationSchema.schema.properties).map(([name, schema]: [string, OasTypes.SchemaObject]) => {\n const isParam = isParameterObject(schema)\n const data: FunctionParamsAST = {\n name,\n enabled: !!name,\n required: isParam ? schema.required : true,\n type: typed ? `${operationSchema.name}[\"${name}\"]` : undefined,\n }\n\n return override ? override(data) : data\n })\n}\n\nexport function getPathParams(\n operationSchema: OperationSchema | undefined,\n options: {\n typed?: boolean\n casing?: 'camelcase'\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n) {\n return getASTParams(operationSchema, options).reduce((acc, curr) => {\n if (curr.name && curr.enabled) {\n let name = isValidVarName(curr.name) ? curr.name : camelCase(curr.name)\n\n if (options.casing === 'camelcase') {\n name = camelCase(name)\n }\n\n acc[name] = {\n default: curr.default,\n type: curr.type,\n optional: !curr.required,\n }\n }\n\n return acc\n }, {} as Params)\n}\n"],"mappings":";;;;;;;;;;;;AAKA,SAAgB,YAAY,WAAgC;AAC1D,QAAO;EACL,UAAU,gBAAgB,IAAI,gBAAgB,UAAU,gBAAgB;EACxE,UAAU,YAAY,IAAI,YAAY,UAAU,YAAY;EAC5D,UAAU,QAAQ,UAAU,IAAIA,0BAAQ,UAAU,KAAK,CAAC,IAAI;EAC5D,UAAU,cAAc,IAAI;EAC7B,CACE,OAAO,QAAQ,CACf,KAAK,SAASC,iCAAa,KAAK,KAAK,CAAC;;;;;;;;;;ACF3C,SAAgB,aACd,iBACA,EACE,QAAQ,OACR,aAIE,EAAE,EACe;AACrB,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,OAAO,cAAc,CAAC,gBAAgB,KAC7E,QAAO,EAAE;AAGX,QAAO,OAAO,QAAQ,gBAAgB,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,YAA6C;EAChH,MAAM,4CAA4B,OAAO;EACzC,MAAMC,OAA0B;GAC9B;GACA,SAAS,CAAC,CAAC;GACX,UAAU,UAAU,OAAO,WAAW;GACtC,MAAM,QAAQ,GAAG,gBAAgB,KAAK,IAAI,KAAK,MAAM;GACtD;AAED,SAAO,WAAW,SAAS,KAAK,GAAG;GACnC;;AAGJ,SAAgB,cACd,iBACA,UAII,EAAE,EACN;AACA,QAAO,aAAa,iBAAiB,QAAQ,CAAC,QAAQ,KAAK,SAAS;AAClE,MAAI,KAAK,QAAQ,KAAK,SAAS;GAC7B,IAAI,oDAAsB,KAAK,KAAK,GAAG,KAAK,+CAAiB,KAAK,KAAK;AAEvE,OAAI,QAAQ,WAAW,YACrB,gDAAiB,KAAK;AAGxB,OAAI,QAAQ;IACV,SAAS,KAAK;IACd,MAAM,KAAK;IACX,UAAU,CAAC,KAAK;IACjB;;AAGH,SAAO;IACN,EAAE,CAAW"}
|
package/dist/utils.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as SchemaObject$1, D as OpenAPIV3$1, E as OasTypes, N as Config, O as OpenAPIV3_1, P as Output, T as Oas, g as OperationSchema, j as contentType, k as Operation } from "./createGenerator-PIseu7v9.cjs";
|
|
2
2
|
import "./SchemaMapper-CX7sIIuZ.cjs";
|
|
3
3
|
import { OASDocument, SchemaObject } from "oas/types";
|
|
4
4
|
import { OpenAPIV3 } from "openapi-types";
|
|
@@ -8,9 +8,31 @@ import { Params } from "@kubb/react-fabric/types";
|
|
|
8
8
|
|
|
9
9
|
declare function isOptional(schema?: SchemaObject): boolean;
|
|
10
10
|
//#endregion
|
|
11
|
+
//#region src/utils/getBanner.d.ts
|
|
12
|
+
type Props$1<TOas extends Oas> = {
|
|
13
|
+
oas: TOas;
|
|
14
|
+
output: Output<any>;
|
|
15
|
+
config?: Config;
|
|
16
|
+
};
|
|
17
|
+
declare function getBanner<TOas extends Oas>({
|
|
18
|
+
output,
|
|
19
|
+
oas,
|
|
20
|
+
config
|
|
21
|
+
}: Props$1<TOas>): string;
|
|
22
|
+
//#endregion
|
|
11
23
|
//#region src/utils/getComments.d.ts
|
|
12
24
|
declare function getComments(operation: Operation): string[];
|
|
13
25
|
//#endregion
|
|
26
|
+
//#region src/utils/getFooter.d.ts
|
|
27
|
+
type Props<TOas extends Oas> = {
|
|
28
|
+
oas: TOas;
|
|
29
|
+
output: Output<any>;
|
|
30
|
+
};
|
|
31
|
+
declare function getFooter<TOas extends Oas>({
|
|
32
|
+
output,
|
|
33
|
+
oas
|
|
34
|
+
}: Props<TOas>): string | undefined;
|
|
35
|
+
//#endregion
|
|
14
36
|
//#region ../core/src/utils/FunctionParams.d.ts
|
|
15
37
|
type FunctionParamsASTWithoutType = {
|
|
16
38
|
name?: string;
|
|
@@ -83,6 +105,10 @@ type GetSchemasProps = {
|
|
|
83
105
|
contentType?: contentType;
|
|
84
106
|
includes?: Mode[];
|
|
85
107
|
};
|
|
108
|
+
/**
|
|
109
|
+
* Collect schemas from OpenAPI components (schemas, responses, requestBodies)
|
|
110
|
+
* and return them in dependency order.
|
|
111
|
+
*/
|
|
86
112
|
declare function getSchemas({
|
|
87
113
|
oas,
|
|
88
114
|
contentType,
|
|
@@ -92,27 +118,5 @@ declare function getSchemas({
|
|
|
92
118
|
//#region src/utils/parseFromConfig.d.ts
|
|
93
119
|
declare function parseFromConfig(config: Config, oasClass?: typeof Oas): Promise<Oas>;
|
|
94
120
|
//#endregion
|
|
95
|
-
//#region src/utils/getBanner.d.ts
|
|
96
|
-
type Props$1<TOas extends Oas> = {
|
|
97
|
-
oas: TOas;
|
|
98
|
-
output: Output<any>;
|
|
99
|
-
config?: Config;
|
|
100
|
-
};
|
|
101
|
-
declare function getBanner<TOas extends Oas>({
|
|
102
|
-
output,
|
|
103
|
-
oas,
|
|
104
|
-
config
|
|
105
|
-
}: Props$1<TOas>): string;
|
|
106
|
-
//#endregion
|
|
107
|
-
//#region src/utils/getFooter.d.ts
|
|
108
|
-
type Props<TOas extends Oas> = {
|
|
109
|
-
oas: TOas;
|
|
110
|
-
output: Output<any>;
|
|
111
|
-
};
|
|
112
|
-
declare function getFooter<TOas extends Oas>({
|
|
113
|
-
output,
|
|
114
|
-
oas
|
|
115
|
-
}: Props<TOas>): string | undefined;
|
|
116
|
-
//#endregion
|
|
117
121
|
export { getBanner, getComments, getFooter, getPathParams, getSchemaFactory, getSchemas, isOptional, parseFromConfig };
|
|
118
122
|
//# sourceMappingURL=utils.d.cts.map
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import "./SchemaMapper-
|
|
1
|
+
import { A as SchemaObject$1, D as OpenAPIV3$1, E as OasTypes, N as Config, O as OpenAPIV3_1, P as Output, T as Oas, g as OperationSchema, j as contentType, k as Operation } from "./createGenerator-DlSlv4sR.js";
|
|
2
|
+
import "./SchemaMapper-m5TKynWt.js";
|
|
3
3
|
import { OASDocument, SchemaObject } from "oas/types";
|
|
4
4
|
import { OpenAPIV3 } from "openapi-types";
|
|
5
5
|
import { Params } from "@kubb/react-fabric/types";
|
|
@@ -8,9 +8,31 @@ import { Params } from "@kubb/react-fabric/types";
|
|
|
8
8
|
|
|
9
9
|
declare function isOptional(schema?: SchemaObject): boolean;
|
|
10
10
|
//#endregion
|
|
11
|
+
//#region src/utils/getBanner.d.ts
|
|
12
|
+
type Props$1<TOas extends Oas> = {
|
|
13
|
+
oas: TOas;
|
|
14
|
+
output: Output<any>;
|
|
15
|
+
config?: Config;
|
|
16
|
+
};
|
|
17
|
+
declare function getBanner<TOas extends Oas>({
|
|
18
|
+
output,
|
|
19
|
+
oas,
|
|
20
|
+
config
|
|
21
|
+
}: Props$1<TOas>): string;
|
|
22
|
+
//#endregion
|
|
11
23
|
//#region src/utils/getComments.d.ts
|
|
12
24
|
declare function getComments(operation: Operation): string[];
|
|
13
25
|
//#endregion
|
|
26
|
+
//#region src/utils/getFooter.d.ts
|
|
27
|
+
type Props<TOas extends Oas> = {
|
|
28
|
+
oas: TOas;
|
|
29
|
+
output: Output<any>;
|
|
30
|
+
};
|
|
31
|
+
declare function getFooter<TOas extends Oas>({
|
|
32
|
+
output,
|
|
33
|
+
oas
|
|
34
|
+
}: Props<TOas>): string | undefined;
|
|
35
|
+
//#endregion
|
|
14
36
|
//#region ../core/src/utils/FunctionParams.d.ts
|
|
15
37
|
type FunctionParamsASTWithoutType = {
|
|
16
38
|
name?: string;
|
|
@@ -83,6 +105,10 @@ type GetSchemasProps = {
|
|
|
83
105
|
contentType?: contentType;
|
|
84
106
|
includes?: Mode[];
|
|
85
107
|
};
|
|
108
|
+
/**
|
|
109
|
+
* Collect schemas from OpenAPI components (schemas, responses, requestBodies)
|
|
110
|
+
* and return them in dependency order.
|
|
111
|
+
*/
|
|
86
112
|
declare function getSchemas({
|
|
87
113
|
oas,
|
|
88
114
|
contentType,
|
|
@@ -92,27 +118,5 @@ declare function getSchemas({
|
|
|
92
118
|
//#region src/utils/parseFromConfig.d.ts
|
|
93
119
|
declare function parseFromConfig(config: Config, oasClass?: typeof Oas): Promise<Oas>;
|
|
94
120
|
//#endregion
|
|
95
|
-
//#region src/utils/getBanner.d.ts
|
|
96
|
-
type Props$1<TOas extends Oas> = {
|
|
97
|
-
oas: TOas;
|
|
98
|
-
output: Output<any>;
|
|
99
|
-
config?: Config;
|
|
100
|
-
};
|
|
101
|
-
declare function getBanner<TOas extends Oas>({
|
|
102
|
-
output,
|
|
103
|
-
oas,
|
|
104
|
-
config
|
|
105
|
-
}: Props$1<TOas>): string;
|
|
106
|
-
//#endregion
|
|
107
|
-
//#region src/utils/getFooter.d.ts
|
|
108
|
-
type Props<TOas extends Oas> = {
|
|
109
|
-
oas: TOas;
|
|
110
|
-
output: Output<any>;
|
|
111
|
-
};
|
|
112
|
-
declare function getFooter<TOas extends Oas>({
|
|
113
|
-
output,
|
|
114
|
-
oas
|
|
115
|
-
}: Props<TOas>): string | undefined;
|
|
116
|
-
//#endregion
|
|
117
121
|
export { getBanner, getComments, getFooter, getPathParams, getSchemaFactory, getSchemas, isOptional, parseFromConfig };
|
|
118
122
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as getBanner, t as getFooter } from "./getFooter-
|
|
2
|
-
import { n as getSchemaFactory, t as getSchemas } from "./getSchemas-
|
|
3
|
-
import { t as parseFromConfig } from "./parseFromConfig-
|
|
1
|
+
import { n as getBanner, t as getFooter } from "./getFooter-CV73pVXj.js";
|
|
2
|
+
import { n as getSchemaFactory, t as getSchemas } from "./getSchemas-32BHoMO-.js";
|
|
3
|
+
import { t as parseFromConfig } from "./parseFromConfig-BkUoWC2U.js";
|
|
4
4
|
import transformers, { camelCase, isValidVarName } from "@kubb/core/transformers";
|
|
5
5
|
import { URLPath } from "@kubb/core/utils";
|
|
6
6
|
import { isOptional, isParameterObject } from "@kubb/oas";
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["data: FunctionParamsAST"],"sources":["../src/utils/getComments.ts","../src/utils/getParams.ts"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { URLPath } from '@kubb/core/utils'\n\nimport type { Operation } from '@kubb/oas'\n\nexport function getComments(operation: Operation): string[] {\n return [\n operation.getDescription() && `@description ${operation.getDescription()}`,\n operation.getSummary() && `@summary ${operation.getSummary()}`,\n operation.path && `{@link ${new URLPath(operation.path).URL}}`,\n operation.isDeprecated() && '@deprecated',\n ]\n .filter(Boolean)\n .map((text) => transformers.trim(text))\n}\n","import {
|
|
1
|
+
{"version":3,"file":"utils.js","names":["data: FunctionParamsAST"],"sources":["../src/utils/getComments.ts","../src/utils/getParams.ts"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { URLPath } from '@kubb/core/utils'\n\nimport type { Operation } from '@kubb/oas'\n\nexport function getComments(operation: Operation): string[] {\n return [\n operation.getDescription() && `@description ${operation.getDescription()}`,\n operation.getSummary() && `@summary ${operation.getSummary()}`,\n operation.path && `{@link ${new URLPath(operation.path).URL}}`,\n operation.isDeprecated() && '@deprecated',\n ]\n .filter(Boolean)\n .map((text) => transformers.trim(text))\n}\n","import { camelCase, isValidVarName } from '@kubb/core/transformers'\nimport type { FunctionParamsAST } from '@kubb/core/utils'\nimport type { OasTypes } from '@kubb/oas'\nimport { isParameterObject } from '@kubb/oas'\nimport type { Params } from '@kubb/react-fabric/types'\nimport type { OperationSchema } from '../types.ts'\n/**\n *\n * @deprecated\n * TODO move to operationManager hook\n */\nexport function getASTParams(\n operationSchema: OperationSchema | undefined,\n {\n typed = false,\n override,\n }: {\n typed?: boolean\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n): FunctionParamsAST[] {\n if (!operationSchema || !operationSchema.schema.properties || !operationSchema.name) {\n return []\n }\n\n return Object.entries(operationSchema.schema.properties).map(([name, schema]: [string, OasTypes.SchemaObject]) => {\n const isParam = isParameterObject(schema)\n const data: FunctionParamsAST = {\n name,\n enabled: !!name,\n required: isParam ? schema.required : true,\n type: typed ? `${operationSchema.name}[\"${name}\"]` : undefined,\n }\n\n return override ? override(data) : data\n })\n}\n\nexport function getPathParams(\n operationSchema: OperationSchema | undefined,\n options: {\n typed?: boolean\n casing?: 'camelcase'\n override?: (data: FunctionParamsAST) => FunctionParamsAST\n } = {},\n) {\n return getASTParams(operationSchema, options).reduce((acc, curr) => {\n if (curr.name && curr.enabled) {\n let name = isValidVarName(curr.name) ? curr.name : camelCase(curr.name)\n\n if (options.casing === 'camelcase') {\n name = camelCase(name)\n }\n\n acc[name] = {\n default: curr.default,\n type: curr.type,\n optional: !curr.required,\n }\n }\n\n return acc\n }, {} as Params)\n}\n"],"mappings":";;;;;;;;AAKA,SAAgB,YAAY,WAAgC;AAC1D,QAAO;EACL,UAAU,gBAAgB,IAAI,gBAAgB,UAAU,gBAAgB;EACxE,UAAU,YAAY,IAAI,YAAY,UAAU,YAAY;EAC5D,UAAU,QAAQ,UAAU,IAAI,QAAQ,UAAU,KAAK,CAAC,IAAI;EAC5D,UAAU,cAAc,IAAI;EAC7B,CACE,OAAO,QAAQ,CACf,KAAK,SAAS,aAAa,KAAK,KAAK,CAAC;;;;;;;;;;ACF3C,SAAgB,aACd,iBACA,EACE,QAAQ,OACR,aAIE,EAAE,EACe;AACrB,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,OAAO,cAAc,CAAC,gBAAgB,KAC7E,QAAO,EAAE;AAGX,QAAO,OAAO,QAAQ,gBAAgB,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,YAA6C;EAChH,MAAM,UAAU,kBAAkB,OAAO;EACzC,MAAMA,OAA0B;GAC9B;GACA,SAAS,CAAC,CAAC;GACX,UAAU,UAAU,OAAO,WAAW;GACtC,MAAM,QAAQ,GAAG,gBAAgB,KAAK,IAAI,KAAK,MAAM;GACtD;AAED,SAAO,WAAW,SAAS,KAAK,GAAG;GACnC;;AAGJ,SAAgB,cACd,iBACA,UAII,EAAE,EACN;AACA,QAAO,aAAa,iBAAiB,QAAQ,CAAC,QAAQ,KAAK,SAAS;AAClE,MAAI,KAAK,QAAQ,KAAK,SAAS;GAC7B,IAAI,OAAO,eAAe,KAAK,KAAK,GAAG,KAAK,OAAO,UAAU,KAAK,KAAK;AAEvE,OAAI,QAAQ,WAAW,YACrB,QAAO,UAAU,KAAK;AAGxB,OAAI,QAAQ;IACV,SAAS,KAAK;IACd,MAAM,KAAK;IACX,UAAU,CAAC,KAAK;IACjB;;AAGH,SAAO;IACN,EAAE,CAAW"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/plugin-oas",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-20251103132818",
|
|
4
4
|
"description": "OpenAPI Specification (OAS) plugin for Kubb, providing core functionality for parsing and processing OpenAPI/Swagger schemas for code generation.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"openapi",
|
|
@@ -28,10 +28,6 @@
|
|
|
28
28
|
"import": "./dist/index.js",
|
|
29
29
|
"require": "./dist/index.cjs"
|
|
30
30
|
},
|
|
31
|
-
"./components": {
|
|
32
|
-
"import": "./dist/components.js",
|
|
33
|
-
"require": "./dist/components.cjs"
|
|
34
|
-
},
|
|
35
31
|
"./generators": {
|
|
36
32
|
"import": "./dist/generators.js",
|
|
37
33
|
"require": "./dist/generators.cjs"
|
|
@@ -61,9 +57,6 @@
|
|
|
61
57
|
"hooks": [
|
|
62
58
|
"./dist/hooks.d.ts"
|
|
63
59
|
],
|
|
64
|
-
"components": [
|
|
65
|
-
"./dist/components.d.ts"
|
|
66
|
-
],
|
|
67
60
|
"mocks": [
|
|
68
61
|
"./dist/mocks.d.ts"
|
|
69
62
|
],
|
|
@@ -86,16 +79,16 @@
|
|
|
86
79
|
}
|
|
87
80
|
],
|
|
88
81
|
"dependencies": {
|
|
89
|
-
"@kubb/react-fabric": "0.2.
|
|
82
|
+
"@kubb/react-fabric": "0.2.14",
|
|
90
83
|
"@stoplight/yaml": "^4.3.0",
|
|
91
84
|
"p-limit": "^7.2.0",
|
|
92
85
|
"remeda": "^2.32.0",
|
|
93
|
-
"@kubb/core": "0.0.0-canary-
|
|
94
|
-
"@kubb/oas": "0.0.0-canary-
|
|
86
|
+
"@kubb/core": "0.0.0-canary-20251103132818",
|
|
87
|
+
"@kubb/oas": "0.0.0-canary-20251103132818"
|
|
95
88
|
},
|
|
96
89
|
"devDependencies": {},
|
|
97
90
|
"peerDependencies": {
|
|
98
|
-
"@kubb/react-fabric": "0.2.
|
|
91
|
+
"@kubb/react-fabric": "0.2.14"
|
|
99
92
|
},
|
|
100
93
|
"engines": {
|
|
101
94
|
"node": ">=20"
|
|
@@ -6,8 +6,8 @@ import type { contentType, HttpMethod, Oas, OasTypes, Operation, SchemaObject }
|
|
|
6
6
|
import type { Fabric } from '@kubb/react-fabric'
|
|
7
7
|
import pLimit from 'p-limit'
|
|
8
8
|
import type { Generator } from './generators/types.ts'
|
|
9
|
-
import { buildOperation, buildOperations } from './generators/utils.tsx'
|
|
10
9
|
import type { Exclude, Include, OperationSchemas, Override } from './types.ts'
|
|
10
|
+
import { buildOperation, buildOperations } from './utils.tsx'
|
|
11
11
|
|
|
12
12
|
export type OperationMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>
|
|
13
13
|
|
|
@@ -229,12 +229,16 @@ export class OperationGenerator<
|
|
|
229
229
|
|
|
230
230
|
if (generator.type === 'react') {
|
|
231
231
|
await buildOperation(operation, {
|
|
232
|
+
config: this.context.pluginManager.config,
|
|
232
233
|
fabric: this.context.fabric,
|
|
233
|
-
generator,
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
...this.
|
|
237
|
-
|
|
234
|
+
Component: generator.Operation,
|
|
235
|
+
generator: this,
|
|
236
|
+
plugin: {
|
|
237
|
+
...this.context.plugin,
|
|
238
|
+
options: {
|
|
239
|
+
...this.options,
|
|
240
|
+
...options,
|
|
241
|
+
},
|
|
238
242
|
},
|
|
239
243
|
})
|
|
240
244
|
|
|
@@ -242,9 +246,16 @@ export class OperationGenerator<
|
|
|
242
246
|
}
|
|
243
247
|
|
|
244
248
|
const result = await generator.operation?.({
|
|
245
|
-
|
|
249
|
+
generator: this,
|
|
250
|
+
config: this.context.pluginManager.config,
|
|
246
251
|
operation,
|
|
247
|
-
|
|
252
|
+
plugin: {
|
|
253
|
+
...this.context.plugin,
|
|
254
|
+
options: {
|
|
255
|
+
...this.options,
|
|
256
|
+
...options,
|
|
257
|
+
},
|
|
258
|
+
},
|
|
248
259
|
})
|
|
249
260
|
|
|
250
261
|
return result ?? []
|
|
@@ -259,9 +270,10 @@ export class OperationGenerator<
|
|
|
259
270
|
operations.map((op) => op.operation),
|
|
260
271
|
{
|
|
261
272
|
fabric: this.context.fabric,
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
273
|
+
config: this.context.pluginManager.config,
|
|
274
|
+
Component: generator.Operations,
|
|
275
|
+
generator: this,
|
|
276
|
+
plugin: this.context.plugin,
|
|
265
277
|
},
|
|
266
278
|
)
|
|
267
279
|
|
|
@@ -269,9 +281,10 @@ export class OperationGenerator<
|
|
|
269
281
|
}
|
|
270
282
|
|
|
271
283
|
const operationsResult = await generator.operations?.({
|
|
272
|
-
|
|
284
|
+
generator: this,
|
|
285
|
+
config: this.context.pluginManager.config,
|
|
273
286
|
operations: operations.map((op) => op.operation),
|
|
274
|
-
|
|
287
|
+
plugin: this.context.plugin,
|
|
275
288
|
})
|
|
276
289
|
|
|
277
290
|
return [...opResultsFlat, ...(operationsResult ?? [])] as unknown as KubbFile.File<TFileMeta>
|
package/src/SchemaGenerator.ts
CHANGED
|
@@ -9,12 +9,12 @@ import type { Fabric } from '@kubb/react-fabric'
|
|
|
9
9
|
import pLimit from 'p-limit'
|
|
10
10
|
import { isDeepEqual, isNumber, uniqueWith } from 'remeda'
|
|
11
11
|
import type { Generator } from './generators/types.ts'
|
|
12
|
-
import { buildSchema } from './generators/utils.tsx'
|
|
13
12
|
import type { Schema, SchemaKeywordMapper } from './SchemaMapper.ts'
|
|
14
13
|
import { isKeyword, schemaKeywords } from './SchemaMapper.ts'
|
|
15
14
|
import type { OperationSchema, Override, Refs } from './types.ts'
|
|
16
15
|
import { getSchemaFactory } from './utils/getSchemaFactory.ts'
|
|
17
16
|
import { getSchemas } from './utils/getSchemas.ts'
|
|
17
|
+
import { buildSchema } from './utils.tsx'
|
|
18
18
|
|
|
19
19
|
export type GetSchemaGeneratorOptions<T extends SchemaGenerator<any, any, any>> = T extends SchemaGenerator<infer Options, any, any> ? Options : never
|
|
20
20
|
|
|
@@ -1127,12 +1127,16 @@ export class SchemaGenerator<
|
|
|
1127
1127
|
tree,
|
|
1128
1128
|
},
|
|
1129
1129
|
{
|
|
1130
|
+
config: this.context.pluginManager.config,
|
|
1130
1131
|
fabric: this.context.fabric,
|
|
1131
|
-
generator,
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
...this.
|
|
1135
|
-
|
|
1132
|
+
Component: generator.Schema,
|
|
1133
|
+
generator: this,
|
|
1134
|
+
plugin: {
|
|
1135
|
+
...this.context.plugin,
|
|
1136
|
+
options: {
|
|
1137
|
+
...this.options,
|
|
1138
|
+
...options,
|
|
1139
|
+
},
|
|
1136
1140
|
},
|
|
1137
1141
|
},
|
|
1138
1142
|
)
|
|
@@ -1141,15 +1145,19 @@ export class SchemaGenerator<
|
|
|
1141
1145
|
}
|
|
1142
1146
|
|
|
1143
1147
|
const result = await generator.schema?.({
|
|
1144
|
-
|
|
1148
|
+
config: this.context.pluginManager.config,
|
|
1149
|
+
generator: this,
|
|
1145
1150
|
schema: {
|
|
1146
1151
|
name,
|
|
1147
1152
|
value: schemaObject,
|
|
1148
1153
|
tree,
|
|
1149
1154
|
},
|
|
1150
|
-
|
|
1151
|
-
...this.
|
|
1152
|
-
|
|
1155
|
+
plugin: {
|
|
1156
|
+
...this.context.plugin,
|
|
1157
|
+
options: {
|
|
1158
|
+
...this.options,
|
|
1159
|
+
...options,
|
|
1160
|
+
},
|
|
1153
1161
|
},
|
|
1154
1162
|
})
|
|
1155
1163
|
|
package/src/generators/index.ts
CHANGED
|
@@ -2,4 +2,3 @@ export { createGenerator } from './createGenerator.ts'
|
|
|
2
2
|
export { createReactGenerator } from './createReactGenerator.ts'
|
|
3
3
|
export { jsonGenerator } from './jsonGenerator.ts'
|
|
4
4
|
export type { Generator } from './types.ts'
|
|
5
|
-
export { buildOperation, buildOperations, buildSchema } from './utils.tsx'
|
|
@@ -6,8 +6,8 @@ import { createGenerator } from './createGenerator.ts'
|
|
|
6
6
|
|
|
7
7
|
export const jsonGenerator = createGenerator<PluginOas>({
|
|
8
8
|
name: 'plugin-oas',
|
|
9
|
-
async schema({ schema,
|
|
10
|
-
const { pluginManager, plugin } =
|
|
9
|
+
async schema({ schema, generator }) {
|
|
10
|
+
const { pluginManager, plugin } = generator.context
|
|
11
11
|
const file = pluginManager.getFile({
|
|
12
12
|
name: camelCase(schema.name),
|
|
13
13
|
extname: '.json',
|
|
@@ -27,11 +27,11 @@ export const jsonGenerator = createGenerator<PluginOas>({
|
|
|
27
27
|
},
|
|
28
28
|
],
|
|
29
29
|
banner: getBanner({
|
|
30
|
-
oas:
|
|
30
|
+
oas: generator.context.oas,
|
|
31
31
|
output: plugin.options.output,
|
|
32
32
|
config: pluginManager.config,
|
|
33
33
|
}),
|
|
34
|
-
format: getFooter({ oas:
|
|
34
|
+
format: getFooter({ oas: generator.context.oas, output: plugin.options.output }),
|
|
35
35
|
},
|
|
36
36
|
]
|
|
37
37
|
},
|
package/src/generators/types.ts
CHANGED
|
@@ -1,30 +1,29 @@
|
|
|
1
|
-
import type { PluginFactoryOptions } from '@kubb/core'
|
|
1
|
+
import type { Config, Plugin, PluginFactoryOptions } from '@kubb/core'
|
|
2
2
|
import type { Operation, SchemaObject } from '@kubb/oas'
|
|
3
|
-
import type { OperationGenerator
|
|
3
|
+
import type { OperationGenerator } from '../OperationGenerator.ts'
|
|
4
|
+
import type { SchemaGenerator, SchemaGeneratorOptions } from '../SchemaGenerator.ts'
|
|
5
|
+
import type { Schema } from '../SchemaMapper.ts'
|
|
4
6
|
import type { CoreGenerator } from './createGenerator.ts'
|
|
5
7
|
import type { ReactGenerator } from './createReactGenerator.ts'
|
|
6
8
|
|
|
7
9
|
export type OperationsProps<TOptions extends PluginFactoryOptions> = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
instance: Omit<OperationGenerator<TOptions>, 'build'>
|
|
12
|
-
options: TOptions['resolvedOptions']
|
|
10
|
+
config: Config
|
|
11
|
+
generator: Omit<OperationGenerator<TOptions>, 'build'>
|
|
12
|
+
plugin: Plugin<TOptions>
|
|
13
13
|
operations: Array<Operation>
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export type OperationProps<TOptions extends PluginFactoryOptions> = {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
instance: Omit<OperationGenerator<TOptions>, 'build'>
|
|
21
|
-
options: TOptions['resolvedOptions']
|
|
17
|
+
config: Config
|
|
18
|
+
generator: Omit<OperationGenerator<TOptions>, 'build'>
|
|
19
|
+
plugin: Plugin<TOptions>
|
|
22
20
|
operation: Operation
|
|
23
21
|
}
|
|
24
22
|
|
|
25
23
|
export type SchemaProps<TOptions extends PluginFactoryOptions> = {
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
config: Config
|
|
25
|
+
generator: Omit<SchemaGenerator<SchemaGeneratorOptions, TOptions>, 'build'>
|
|
26
|
+
plugin: Plugin<TOptions>
|
|
28
27
|
schema: {
|
|
29
28
|
name: string
|
|
30
29
|
tree: Array<Schema>
|
package/src/hooks/index.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export { useOas } from './useOas.ts'
|
|
2
|
-
export { useOperation } from './useOperation.ts'
|
|
3
2
|
export type { SchemaNames } from './useOperationManager.ts'
|
|
4
3
|
export { useOperationManager } from './useOperationManager.ts'
|
|
5
|
-
export { useSchema } from './useSchema.ts'
|
|
6
4
|
export { useSchemaManager } from './useSchemaManager.ts'
|
|
@@ -2,8 +2,7 @@ import type { FileMetaBase, Plugin, ResolveNameParams } from '@kubb/core'
|
|
|
2
2
|
import { usePlugin, usePluginManager } from '@kubb/core/hooks'
|
|
3
3
|
import type { KubbFile } from '@kubb/fabric-core/types'
|
|
4
4
|
import type { Operation, Operation as OperationType } from '@kubb/oas'
|
|
5
|
-
import {
|
|
6
|
-
import { Oas } from '../components/Oas.tsx'
|
|
5
|
+
import type { OperationGenerator } from '../OperationGenerator.ts'
|
|
7
6
|
import type { OperationSchemas } from '../types.ts'
|
|
8
7
|
|
|
9
8
|
type FileMeta = FileMetaBase & {
|
|
@@ -63,10 +62,9 @@ type UseOperationManagerResult = {
|
|
|
63
62
|
/**
|
|
64
63
|
* `useOperationManager` will return some helper functions that can be used to get the operation file, get the operation name.
|
|
65
64
|
*/
|
|
66
|
-
export function useOperationManager(): UseOperationManagerResult {
|
|
65
|
+
export function useOperationManager(generator: Omit<OperationGenerator, 'build'>): UseOperationManagerResult {
|
|
67
66
|
const plugin = usePlugin()
|
|
68
67
|
const pluginManager = usePluginManager()
|
|
69
|
-
const { generator } = useContext(Oas.Context)
|
|
70
68
|
|
|
71
69
|
const getName: UseOperationManagerResult['getName'] = (operation, { prefix = '', suffix = '', pluginKey = plugin.key, type }) => {
|
|
72
70
|
return pluginManager.resolveName({
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export * from './generators/index.ts'
|
|
2
1
|
export type { OperationMethodResult } from './OperationGenerator.ts'
|
|
3
2
|
export { OperationGenerator } from './OperationGenerator.ts'
|
|
4
3
|
export { pluginOas, pluginOasName } from './plugin.ts'
|
|
@@ -19,3 +18,4 @@ export type {
|
|
|
19
18
|
} from './SchemaMapper.ts'
|
|
20
19
|
export { isKeyword, schemaKeywords } from './SchemaMapper.ts'
|
|
21
20
|
export type * from './types.ts'
|
|
21
|
+
export { buildOperation, buildOperations, buildSchema } from './utils.tsx'
|
package/src/utils/getBanner.ts
CHANGED
package/src/utils/getParams.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { isParameterObject } from '@kubb/oas'
|
|
2
|
-
|
|
3
1
|
import { camelCase, isValidVarName } from '@kubb/core/transformers'
|
|
4
2
|
import type { FunctionParamsAST } from '@kubb/core/utils'
|
|
5
3
|
import type { OasTypes } from '@kubb/oas'
|
|
4
|
+
import { isParameterObject } from '@kubb/oas'
|
|
6
5
|
import type { Params } from '@kubb/react-fabric/types'
|
|
7
6
|
import type { OperationSchema } from '../types.ts'
|
|
8
7
|
/**
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { isOpenApiV3_1Document } from '@kubb/oas'
|
|
2
|
-
|
|
3
1
|
import type { Oas, OpenAPIV3, OpenAPIV3_1, SchemaObject } from '@kubb/oas'
|
|
2
|
+
import { isOpenApiV3_1Document } from '@kubb/oas'
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* Make it possible to narrow down the schema based on a specific version(3 or 3.1)
|