@kubb/plugin-oas 3.16.1 → 3.16.3
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/Oas-CuqAnIw-.js +60 -0
- package/dist/Oas-CuqAnIw-.js.map +1 -0
- package/dist/Oas-Cv_pyXRM.cjs +78 -0
- package/dist/Oas-Cv_pyXRM.cjs.map +1 -0
- package/dist/OperationGenerator-CgbXErhW.d.cts +900 -0
- package/dist/OperationGenerator-OtLcGk2y.d.ts +900 -0
- package/dist/Schema-DJshqHto.d.cts +38 -0
- package/dist/Schema-DOXGUW1m.d.ts +38 -0
- package/dist/SchemaGenerator-8205BXCp.cjs +942 -0
- package/dist/SchemaGenerator-8205BXCp.cjs.map +1 -0
- package/dist/SchemaGenerator-B8Io6kky.js +930 -0
- package/dist/SchemaGenerator-B8Io6kky.js.map +1 -0
- package/dist/SchemaMapper-BaZQKrQB.js +54 -0
- package/dist/SchemaMapper-BaZQKrQB.js.map +1 -0
- package/dist/SchemaMapper-BiagBQN4.d.cts +388 -0
- package/dist/SchemaMapper-C2J2d3o4.d.ts +388 -0
- package/dist/SchemaMapper-D8J0V9Pj.cjs +66 -0
- package/dist/SchemaMapper-D8J0V9Pj.cjs.map +1 -0
- package/dist/chunk-CUT6urMc.cjs +30 -0
- package/dist/components.cjs +4 -19
- package/dist/components.d.cts +42 -35
- package/dist/components.d.ts +42 -35
- package/dist/components.js +3 -3
- package/dist/generators-BhLMlRNk.js +137 -0
- package/dist/generators-BhLMlRNk.js.map +1 -0
- package/dist/generators-DLH2kvlh.cjs +155 -0
- package/dist/generators-DLH2kvlh.cjs.map +1 -0
- package/dist/generators.cjs +4 -13
- package/dist/generators.d.cts +5 -7
- package/dist/generators.d.ts +5 -7
- package/dist/generators.js +5 -5
- package/dist/getFooter-BChY2kC1.cjs +43 -0
- package/dist/getFooter-BChY2kC1.cjs.map +1 -0
- package/dist/getFooter-T7_pZ6f8.js +31 -0
- package/dist/getFooter-T7_pZ6f8.js.map +1 -0
- package/dist/getSchemas-D8mP129c.cjs +67 -0
- package/dist/getSchemas-D8mP129c.cjs.map +1 -0
- package/dist/getSchemas-WoSBIxG8.js +55 -0
- package/dist/getSchemas-WoSBIxG8.js.map +1 -0
- package/dist/hooks.cjs +213 -195
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.cts +91 -86
- package/dist/hooks.d.ts +91 -86
- package/dist/hooks.js +212 -193
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +280 -344
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -10
- package/dist/index.d.ts +7 -10
- package/dist/index.js +274 -318
- package/dist/index.js.map +1 -1
- package/dist/mocks.cjs +802 -737
- package/dist/mocks.cjs.map +1 -1
- package/dist/mocks.d.cts +12 -11
- package/dist/mocks.d.ts +12 -11
- package/dist/mocks.js +802 -735
- package/dist/mocks.js.map +1 -1
- package/dist/parseFromConfig-CMNGsef2.cjs +33 -0
- package/dist/parseFromConfig-CMNGsef2.cjs.map +1 -0
- package/dist/parseFromConfig-yAiFK03V.js +27 -0
- package/dist/parseFromConfig-yAiFK03V.js.map +1 -0
- package/dist/utils.cjs +58 -74
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +96 -42
- package/dist/utils.d.ts +96 -42
- package/dist/utils.js +47 -46
- package/dist/utils.js.map +1 -1
- package/package.json +28 -36
- package/src/SchemaGenerator.ts +6 -1
- package/src/components/Operation.tsx +1 -2
- package/src/mocks/schemas.ts +39 -0
- package/src/utils/getBanner.ts +5 -5
- package/src/utils/getFooter.ts +4 -4
- package/dist/OperationGenerator-C7NPZtOM.d.ts +0 -288
- package/dist/OperationGenerator-DJE2XQ83.d.cts +0 -288
- package/dist/Schema-AjebpeVY.d.ts +0 -32
- package/dist/Schema-M6983FL1.d.cts +0 -32
- package/dist/SchemaMapper-B21ZmWag.d.cts +0 -275
- package/dist/SchemaMapper-B21ZmWag.d.ts +0 -275
- package/dist/chunk-6S7YFY6F.js +0 -33
- package/dist/chunk-6S7YFY6F.js.map +0 -1
- package/dist/chunk-76E35IZ2.js +0 -56
- package/dist/chunk-76E35IZ2.js.map +0 -1
- package/dist/chunk-7RFNM43R.cjs +0 -41
- package/dist/chunk-7RFNM43R.cjs.map +0 -1
- package/dist/chunk-DTD4ZUDA.cjs +0 -36
- package/dist/chunk-DTD4ZUDA.cjs.map +0 -1
- package/dist/chunk-G3FDK7YW.js +0 -35
- package/dist/chunk-G3FDK7YW.js.map +0 -1
- package/dist/chunk-JNN4JPWK.js +0 -28
- package/dist/chunk-JNN4JPWK.js.map +0 -1
- package/dist/chunk-MBX66JAT.js +0 -93
- package/dist/chunk-MBX66JAT.js.map +0 -1
- package/dist/chunk-NFLZLRQS.cjs +0 -869
- package/dist/chunk-NFLZLRQS.cjs.map +0 -1
- package/dist/chunk-P2VXWGXZ.js +0 -862
- package/dist/chunk-P2VXWGXZ.js.map +0 -1
- package/dist/chunk-PORSNYI5.js +0 -47
- package/dist/chunk-PORSNYI5.js.map +0 -1
- package/dist/chunk-QJMOOF2A.cjs +0 -97
- package/dist/chunk-QJMOOF2A.cjs.map +0 -1
- package/dist/chunk-YWMMI3MO.cjs +0 -59
- package/dist/chunk-YWMMI3MO.cjs.map +0 -1
- package/dist/chunk-Z2NREI4X.cjs +0 -32
- package/dist/chunk-Z2NREI4X.cjs.map +0 -1
- package/dist/chunk-ZVFL3NXX.cjs +0 -50
- package/dist/chunk-ZVFL3NXX.cjs.map +0 -1
- package/dist/components.cjs.map +0 -1
- package/dist/components.js.map +0 -1
- package/dist/generators.cjs.map +0 -1
- package/dist/generators.js.map +0 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { isOpenApiV3_1Document } from "@kubb/oas";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/getSchemaFactory.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a factory function that generates a versioned OpenAPI schema result.
|
|
6
|
+
*
|
|
7
|
+
* The returned function accepts an optional schema object and produces a {@link SchemaResult} containing the dereferenced schema and the OpenAPI version ('3.0' or '3.1').
|
|
8
|
+
*
|
|
9
|
+
* @returns A function that takes an optional schema and returns a versioned schema result.
|
|
10
|
+
*/
|
|
11
|
+
function getSchemaFactory(oas) {
|
|
12
|
+
return (schema) => {
|
|
13
|
+
const version = isOpenApiV3_1Document(oas.api) ? "3.1" : "3.0";
|
|
14
|
+
return {
|
|
15
|
+
schemaObject: oas.dereferenceWithRef(schema),
|
|
16
|
+
version
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region src/utils/getSchemas.ts
|
|
23
|
+
function getSchemas({ oas, contentType, includes = [
|
|
24
|
+
"schemas",
|
|
25
|
+
"requestBodies",
|
|
26
|
+
"responses"
|
|
27
|
+
] }) {
|
|
28
|
+
const components = oas.getDefinition().components;
|
|
29
|
+
let schemas = {};
|
|
30
|
+
if (includes.includes("schemas")) schemas = {
|
|
31
|
+
...schemas,
|
|
32
|
+
...components?.schemas || {}
|
|
33
|
+
};
|
|
34
|
+
const requestBodies = components?.requestBodies || {};
|
|
35
|
+
if (includes.includes("responses")) {
|
|
36
|
+
const responses = components?.responses || {};
|
|
37
|
+
Object.entries(responses).forEach(([name, response]) => {
|
|
38
|
+
if (response.content && !schemas[name]) {
|
|
39
|
+
const firstContentType = Object.keys(response.content)[0] || "application/json";
|
|
40
|
+
schemas[name] = response.content?.[contentType || firstContentType]?.schema;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (includes.includes("requestBodies")) Object.entries(requestBodies).forEach(([name, request]) => {
|
|
45
|
+
if (request.content && !schemas[name]) {
|
|
46
|
+
const firstContentType = Object.keys(request.content)[0] || "application/json";
|
|
47
|
+
schemas[name] = request.content?.[contentType || firstContentType]?.schema;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return schemas;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
export { getSchemaFactory, getSchemas };
|
|
55
|
+
//# sourceMappingURL=getSchemas-WoSBIxG8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSchemas-WoSBIxG8.js","names":["oas: Oas","schema?: SchemaObject","schemas: Record<string, OasTypes.SchemaObject>"],"sources":["../src/utils/getSchemaFactory.ts","../src/utils/getSchemas.ts"],"sourcesContent":["import { isOpenApiV3_1Document } from '@kubb/oas'\n\nimport type { Oas, OpenAPIV3, OpenAPIV3_1, SchemaObject } from '@kubb/oas'\n\n/**\n * Make it possible to narrow down the schema based on a specific version(3 or 3.1)\n */\ntype SchemaResult<TWithRef extends boolean = false> =\n | {\n schemaObject?: (TWithRef extends true ? OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject : OpenAPIV3.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.0'\n }\n | {\n schemaObject?: (TWithRef extends true ? OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject : OpenAPIV3_1.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.1'\n }\n\n/**\n * Creates a factory function that generates a versioned OpenAPI schema result.\n *\n * The returned function accepts an optional schema object and produces a {@link SchemaResult} containing the dereferenced schema and the OpenAPI version ('3.0' or '3.1').\n *\n * @returns A function that takes an optional schema and returns a versioned schema result.\n */\nexport function getSchemaFactory<TWithRef extends boolean = false>(oas: Oas): (schema?: SchemaObject) => SchemaResult<TWithRef> {\n return (schema?: SchemaObject) => {\n const version = isOpenApiV3_1Document(oas.api) ? '3.1' : '3.0'\n\n return {\n schemaObject: oas.dereferenceWithRef(schema),\n version,\n } as SchemaResult<TWithRef>\n }\n}\n","import type { Oas, OasTypes, contentType } from '@kubb/oas'\n\ntype Mode = 'schemas' | 'responses' | 'requestBodies'\n\ntype GetSchemasProps = {\n oas: Oas\n contentType?: contentType\n includes?: Mode[]\n}\n\nexport function getSchemas({ oas, contentType, includes = ['schemas', 'requestBodies', 'responses'] }: GetSchemasProps): Record<string, OasTypes.SchemaObject> {\n const components = oas.getDefinition().components\n\n let schemas: Record<string, OasTypes.SchemaObject> = {}\n\n if (includes.includes('schemas')) {\n schemas = {\n ...schemas,\n ...((components?.schemas as Record<string, OasTypes.SchemaObject>) || {}),\n }\n }\n\n const requestBodies = components?.requestBodies || {}\n if (includes.includes('responses')) {\n const responses = components?.responses || {}\n\n Object.entries(responses).forEach(([name, response]: [string, OasTypes.ResponseObject]) => {\n if (response.content && !schemas[name]) {\n const firstContentType = Object.keys(response.content)[0] || 'application/json'\n schemas[name] = response.content?.[contentType || firstContentType]?.schema as OasTypes.SchemaObject\n }\n })\n }\n\n if (includes.includes('requestBodies')) {\n Object.entries(requestBodies).forEach(([name, request]: [string, OasTypes.RequestBodyObject]) => {\n if (request.content && !schemas[name]) {\n const firstContentType = Object.keys(request.content)[0] || 'application/json'\n schemas[name] = request.content?.[contentType || firstContentType]?.schema as OasTypes.SchemaObject\n }\n })\n }\n\n return schemas\n}\n"],"mappings":";;;;;;;;;;AA8BA,SAAgB,iBAAmDA,KAA6D;AAC9H,QAAO,CAACC,WAA0B;EAChC,MAAM,UAAU,sBAAsB,IAAI,IAAI,GAAG,QAAQ;AAEzD,SAAO;GACL,cAAc,IAAI,mBAAmB,OAAO;GAC5C;EACD;CACF;AACF;;;;AC7BD,SAAgB,WAAW,EAAE,KAAK,aAAa,WAAW;CAAC;CAAW;CAAiB;AAAY,GAAmB,EAAyC;CAC7J,MAAM,aAAa,IAAI,eAAe,CAAC;CAEvC,IAAIC,UAAiD,CAAE;AAEvD,KAAI,SAAS,SAAS,UAAU,EAC9B,UAAU;EACR,GAAG;EACH,GAAK,YAAY,WAAqD,CAAE;CACzE;CAGH,MAAM,gBAAgB,YAAY,iBAAiB,CAAE;AACrD,KAAI,SAAS,SAAS,YAAY,EAAE;EAClC,MAAM,YAAY,YAAY,aAAa,CAAE;EAE7C,OAAO,QAAQ,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,SAA4C,KAAK;AACzF,OAAI,SAAS,WAAW,CAAC,QAAQ,OAAO;IACtC,MAAM,mBAAmB,OAAO,KAAK,SAAS,QAAQ,CAAC,MAAM;IAC7D,QAAQ,QAAQ,SAAS,UAAU,eAAe,mBAAmB;GACtE;EACF,EAAC;CACH;AAED,KAAI,SAAS,SAAS,gBAAgB,EACpC,OAAO,QAAQ,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,QAA8C,KAAK;AAC/F,MAAI,QAAQ,WAAW,CAAC,QAAQ,OAAO;GACrC,MAAM,mBAAmB,OAAO,KAAK,QAAQ,QAAQ,CAAC,MAAM;GAC5D,QAAQ,QAAQ,QAAQ,UAAU,eAAe,mBAAmB;EACrE;CACF,EAAC;AAGJ,QAAO;AACR"}
|
package/dist/hooks.cjs
CHANGED
|
@@ -1,216 +1,234 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require('./
|
|
6
|
-
|
|
7
|
-
var react = require('@kubb/react');
|
|
1
|
+
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
+
const require_SchemaGenerator = require('./SchemaGenerator-8205BXCp.cjs');
|
|
3
|
+
const require_Oas = require('./Oas-Cv_pyXRM.cjs');
|
|
4
|
+
const require_SchemaMapper = require('./SchemaMapper-D8J0V9Pj.cjs');
|
|
5
|
+
require('./getSchemas-D8mP129c.cjs');
|
|
6
|
+
const __kubb_react = require_chunk.__toESM(require("@kubb/react"));
|
|
8
7
|
|
|
8
|
+
//#region src/hooks/useOas.ts
|
|
9
9
|
function useOas() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
return oas;
|
|
10
|
+
const { oas } = (0, __kubb_react.useContext)(require_Oas.Oas.Context);
|
|
11
|
+
if (!oas) throw new Error("Oas is not defined");
|
|
12
|
+
return oas;
|
|
15
13
|
}
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/hooks/useOperation.ts
|
|
17
|
+
/**
|
|
18
|
+
* `useOperation` will return the current `Operation`
|
|
19
|
+
*/
|
|
16
20
|
function useOperation() {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
return operation;
|
|
21
|
+
const { operation } = (0, __kubb_react.useContext)(require_Oas.Operation.Context);
|
|
22
|
+
if (!operation) throw new Error("Operation is not defined");
|
|
23
|
+
return operation;
|
|
22
24
|
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/hooks/useOperationManager.ts
|
|
28
|
+
/**
|
|
29
|
+
* `useOperationManager` will return some helper functions that can be used to get the operation file, get the operation name.
|
|
30
|
+
*/
|
|
23
31
|
function useOperationManager() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
return {
|
|
139
|
-
getName,
|
|
140
|
-
getFile,
|
|
141
|
-
getSchemas,
|
|
142
|
-
groupSchemasByName,
|
|
143
|
-
getGroup
|
|
144
|
-
};
|
|
32
|
+
const { plugin, pluginManager } = (0, __kubb_react.useApp)();
|
|
33
|
+
const { generator } = (0, __kubb_react.useContext)(require_Oas.Oas.Context);
|
|
34
|
+
const getName = (operation, { prefix = "", suffix = "", pluginKey = plugin.key, type }) => {
|
|
35
|
+
return pluginManager.resolveName({
|
|
36
|
+
name: `${prefix} ${operation.getOperationId()} ${suffix}`,
|
|
37
|
+
pluginKey,
|
|
38
|
+
type
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
const getGroup = (operation) => {
|
|
42
|
+
return {
|
|
43
|
+
tag: operation.getTags().at(0)?.name,
|
|
44
|
+
path: operation.path
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
const getSchemas = (operation, params) => {
|
|
48
|
+
if (!generator) throw new Error(`'generator' is not defined`);
|
|
49
|
+
return generator.getSchemas(operation, { resolveName: (name) => pluginManager.resolveName({
|
|
50
|
+
name,
|
|
51
|
+
pluginKey: params?.pluginKey,
|
|
52
|
+
type: params?.type
|
|
53
|
+
}) });
|
|
54
|
+
};
|
|
55
|
+
const getFile = (operation, { prefix, suffix, pluginKey = plugin.key, extname = ".ts" } = {}) => {
|
|
56
|
+
const name = getName(operation, {
|
|
57
|
+
type: "file",
|
|
58
|
+
pluginKey,
|
|
59
|
+
prefix,
|
|
60
|
+
suffix
|
|
61
|
+
});
|
|
62
|
+
const group = getGroup(operation);
|
|
63
|
+
const file = pluginManager.getFile({
|
|
64
|
+
name,
|
|
65
|
+
extname,
|
|
66
|
+
pluginKey,
|
|
67
|
+
options: {
|
|
68
|
+
type: "file",
|
|
69
|
+
pluginKey,
|
|
70
|
+
group
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return {
|
|
74
|
+
...file,
|
|
75
|
+
meta: {
|
|
76
|
+
...file.meta,
|
|
77
|
+
name,
|
|
78
|
+
pluginKey,
|
|
79
|
+
group
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
const groupSchemasByName = (operation, { pluginKey = plugin.key, type }) => {
|
|
84
|
+
if (!generator) throw new Error(`'generator' is not defined`);
|
|
85
|
+
const schemas = generator.getSchemas(operation);
|
|
86
|
+
const errors = (schemas.errors || []).reduce((prev, acc) => {
|
|
87
|
+
if (!acc.statusCode) return prev;
|
|
88
|
+
prev[acc.statusCode] = pluginManager.resolveName({
|
|
89
|
+
name: acc.name,
|
|
90
|
+
pluginKey,
|
|
91
|
+
type
|
|
92
|
+
});
|
|
93
|
+
return prev;
|
|
94
|
+
}, {});
|
|
95
|
+
const responses = (schemas.responses || []).reduce((prev, acc) => {
|
|
96
|
+
if (!acc.statusCode) return prev;
|
|
97
|
+
prev[acc.statusCode] = pluginManager.resolveName({
|
|
98
|
+
name: acc.name,
|
|
99
|
+
pluginKey,
|
|
100
|
+
type
|
|
101
|
+
});
|
|
102
|
+
return prev;
|
|
103
|
+
}, {});
|
|
104
|
+
return {
|
|
105
|
+
request: schemas.request?.name ? pluginManager.resolveName({
|
|
106
|
+
name: schemas.request.name,
|
|
107
|
+
pluginKey,
|
|
108
|
+
type
|
|
109
|
+
}) : void 0,
|
|
110
|
+
parameters: {
|
|
111
|
+
path: schemas.pathParams?.name ? pluginManager.resolveName({
|
|
112
|
+
name: schemas.pathParams.name,
|
|
113
|
+
pluginKey,
|
|
114
|
+
type
|
|
115
|
+
}) : void 0,
|
|
116
|
+
query: schemas.queryParams?.name ? pluginManager.resolveName({
|
|
117
|
+
name: schemas.queryParams.name,
|
|
118
|
+
pluginKey,
|
|
119
|
+
type
|
|
120
|
+
}) : void 0,
|
|
121
|
+
header: schemas.headerParams?.name ? pluginManager.resolveName({
|
|
122
|
+
name: schemas.headerParams.name,
|
|
123
|
+
pluginKey,
|
|
124
|
+
type
|
|
125
|
+
}) : void 0
|
|
126
|
+
},
|
|
127
|
+
responses: {
|
|
128
|
+
...responses,
|
|
129
|
+
["default"]: pluginManager.resolveName({
|
|
130
|
+
name: schemas.response.name,
|
|
131
|
+
pluginKey,
|
|
132
|
+
type
|
|
133
|
+
}),
|
|
134
|
+
...errors
|
|
135
|
+
},
|
|
136
|
+
errors
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
return {
|
|
140
|
+
getName,
|
|
141
|
+
getFile,
|
|
142
|
+
getSchemas,
|
|
143
|
+
groupSchemasByName,
|
|
144
|
+
getGroup
|
|
145
|
+
};
|
|
145
146
|
}
|
|
147
|
+
|
|
148
|
+
//#endregion
|
|
149
|
+
//#region src/hooks/useOperations.ts
|
|
150
|
+
/**
|
|
151
|
+
* `useOperations` will return all the Operations
|
|
152
|
+
*/
|
|
146
153
|
function useOperations({ method, path } = {}) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
items = items.filter((item) => item.path === path);
|
|
154
|
-
}
|
|
155
|
-
if (method) {
|
|
156
|
-
items = items.filter((item) => item.method === method);
|
|
157
|
-
}
|
|
158
|
-
return items;
|
|
154
|
+
const { operations } = (0, __kubb_react.useContext)(require_Oas.Oas.Context);
|
|
155
|
+
if (!operations) throw new Error("Operations is not defined");
|
|
156
|
+
let items = operations;
|
|
157
|
+
if (path) items = items.filter((item) => item.path === path);
|
|
158
|
+
if (method) items = items.filter((item) => item.method === method);
|
|
159
|
+
return items;
|
|
159
160
|
}
|
|
161
|
+
|
|
162
|
+
//#endregion
|
|
163
|
+
//#region src/hooks/useSchema.ts
|
|
164
|
+
/**
|
|
165
|
+
* `useSchema` will return the current `schema properties`
|
|
166
|
+
*/
|
|
160
167
|
function useSchema() {
|
|
161
|
-
|
|
162
|
-
|
|
168
|
+
const props = (0, __kubb_react.useContext)(require_Oas.Schema.Context);
|
|
169
|
+
return props;
|
|
163
170
|
}
|
|
171
|
+
|
|
172
|
+
//#endregion
|
|
173
|
+
//#region src/hooks/useSchemaManager.ts
|
|
174
|
+
/**
|
|
175
|
+
* `useSchemaManager` will return some helper functions that can be used to get the schema file, get the schema name.
|
|
176
|
+
*/
|
|
164
177
|
function useSchemaManager() {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
178
|
+
const { plugin, pluginManager } = (0, __kubb_react.useApp)();
|
|
179
|
+
const getName = (name, { pluginKey = plugin.key, type }) => {
|
|
180
|
+
return pluginManager.resolveName({
|
|
181
|
+
name,
|
|
182
|
+
pluginKey,
|
|
183
|
+
type
|
|
184
|
+
});
|
|
185
|
+
};
|
|
186
|
+
const getFile = (name, { mode = "split", pluginKey = plugin.key, extname = ".ts", group } = {}) => {
|
|
187
|
+
const resolvedName = mode === "single" ? "" : getName(name, {
|
|
188
|
+
type: "file",
|
|
189
|
+
pluginKey
|
|
190
|
+
});
|
|
191
|
+
const file = pluginManager.getFile({
|
|
192
|
+
name: resolvedName,
|
|
193
|
+
extname,
|
|
194
|
+
pluginKey,
|
|
195
|
+
options: {
|
|
196
|
+
type: "file",
|
|
197
|
+
pluginKey,
|
|
198
|
+
group
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
return {
|
|
202
|
+
...file,
|
|
203
|
+
meta: {
|
|
204
|
+
...file.meta,
|
|
205
|
+
name: resolvedName,
|
|
206
|
+
pluginKey
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
};
|
|
210
|
+
const getImports = (tree) => {
|
|
211
|
+
const refs = require_SchemaGenerator.SchemaGenerator.deepSearch(tree, require_SchemaMapper.schemaKeywords.ref);
|
|
212
|
+
return refs?.map((item) => {
|
|
213
|
+
if (!item.args.path || !item.args.isImportable) return void 0;
|
|
214
|
+
return {
|
|
215
|
+
name: [item.args.name],
|
|
216
|
+
path: item.args.path
|
|
217
|
+
};
|
|
218
|
+
}).filter(Boolean);
|
|
219
|
+
};
|
|
220
|
+
return {
|
|
221
|
+
getName,
|
|
222
|
+
getFile,
|
|
223
|
+
getImports
|
|
224
|
+
};
|
|
207
225
|
}
|
|
208
226
|
|
|
227
|
+
//#endregion
|
|
209
228
|
exports.useOas = useOas;
|
|
210
229
|
exports.useOperation = useOperation;
|
|
211
230
|
exports.useOperationManager = useOperationManager;
|
|
212
231
|
exports.useOperations = useOperations;
|
|
213
232
|
exports.useSchema = useSchema;
|
|
214
233
|
exports.useSchemaManager = useSchemaManager;
|
|
215
|
-
//# sourceMappingURL=hooks.cjs.map
|
|
216
234
|
//# sourceMappingURL=hooks.cjs.map
|
package/dist/hooks.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/useOas.ts","../src/hooks/useOperation.ts","../src/hooks/useOperationManager.ts","../src/hooks/useOperations.ts","../src/hooks/useSchema.ts","../src/hooks/useSchemaManager.ts"],"names":["useContext","Oas","Operation","useApp","Schema","SchemaGenerator","schemaKeywords"],"mappings":"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","file":"hooks.cjs","sourcesContent":["import { useContext } from '@kubb/react'\n\nimport { Oas } from '../components/Oas.tsx'\n\nimport type { Oas as OasType } from '@kubb/oas'\n\nexport function useOas(): OasType {\n const { oas } = useContext(Oas.Context)\n\n if (!oas) {\n throw new Error('Oas is not defined')\n }\n\n return oas\n}\n","import { useContext } from '@kubb/react'\n\nimport { Operation } from '../components/Operation.tsx'\n\nimport type { Operation as OperationType } from '@kubb/oas'\n\n/**\n * `useOperation` will return the current `Operation`\n */\nexport function useOperation(): OperationType {\n const { operation } = useContext(Operation.Context)\n\n if (!operation) {\n throw new Error('Operation is not defined')\n }\n\n return operation\n}\n","import { useApp, useContext } from '@kubb/react'\n\nimport { Oas } from '../components/Oas.tsx'\n\nimport type { FileMetaBase, Plugin, ResolveNameParams } from '@kubb/core'\n\nimport type { KubbFile } from '@kubb/core/fs'\nimport type { Operation, Operation as OperationType } from '@kubb/oas'\nimport type { OperationSchemas } from '../types.ts'\n\ntype FileMeta = FileMetaBase & {\n pluginKey: Plugin['key']\n name: string\n group?: {\n tag?: string\n path?: string\n }\n}\n\nexport type SchemaNames = {\n request: string | undefined\n parameters: {\n path: string | undefined\n query: string | undefined\n header: string | undefined\n }\n responses: { default?: string } & Record<number | string, string>\n errors: Record<number | string, string>\n}\n\ntype UseOperationManagerResult = {\n getName: (\n operation: OperationType,\n params: {\n prefix?: string\n suffix?: string\n pluginKey?: Plugin['key']\n type: ResolveNameParams['type']\n },\n ) => string\n getFile: (\n operation: OperationType,\n params?: {\n prefix?: string\n suffix?: string\n pluginKey?: Plugin['key']\n extname?: KubbFile.Extname\n group?: {\n tag?: string\n path?: string\n }\n },\n ) => KubbFile.File<FileMeta>\n groupSchemasByName: (\n operation: OperationType,\n params: {\n pluginKey?: Plugin['key']\n type: ResolveNameParams['type']\n },\n ) => SchemaNames\n getSchemas: (operation: Operation, params?: { pluginKey?: Plugin['key']; type?: ResolveNameParams['type'] }) => OperationSchemas\n getGroup: (operation: Operation) => FileMeta['group'] | undefined\n}\n\n/**\n * `useOperationManager` will return some helper functions that can be used to get the operation file, get the operation name.\n */\nexport function useOperationManager(): UseOperationManagerResult {\n const { plugin, pluginManager } = useApp()\n const { generator } = useContext(Oas.Context)\n\n const getName: UseOperationManagerResult['getName'] = (operation, { prefix = '', suffix = '', pluginKey = plugin.key, type }) => {\n return pluginManager.resolveName({\n name: `${prefix} ${operation.getOperationId()} ${suffix}`,\n pluginKey,\n type,\n })\n }\n\n const getGroup: UseOperationManagerResult['getGroup'] = (operation) => {\n return {\n tag: operation.getTags().at(0)?.name,\n path: operation.path,\n }\n }\n\n const getSchemas: UseOperationManagerResult['getSchemas'] = (operation, params) => {\n if (!generator) {\n throw new Error(`'generator' is not defined`)\n }\n\n return generator.getSchemas(operation, {\n resolveName: (name) =>\n pluginManager.resolveName({\n name,\n pluginKey: params?.pluginKey,\n type: params?.type,\n }),\n })\n }\n\n const getFile: UseOperationManagerResult['getFile'] = (operation, { prefix, suffix, pluginKey = plugin.key, extname = '.ts' } = {}) => {\n const name = getName(operation, { type: 'file', pluginKey, prefix, suffix })\n const group = getGroup(operation)\n\n const file = pluginManager.getFile({\n name,\n extname,\n pluginKey,\n options: { type: 'file', pluginKey, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name,\n pluginKey,\n group,\n },\n }\n }\n\n const groupSchemasByName: UseOperationManagerResult['groupSchemasByName'] = (operation, { pluginKey = plugin.key, type }) => {\n if (!generator) {\n throw new Error(`'generator' is not defined`)\n }\n\n const schemas = generator.getSchemas(operation)\n\n const errors = (schemas.errors || []).reduce(\n (prev, acc) => {\n if (!acc.statusCode) {\n return prev\n }\n\n prev[acc.statusCode] = pluginManager.resolveName({\n name: acc.name,\n pluginKey,\n type,\n })\n\n return prev\n },\n {} as Record<number, string>,\n )\n\n const responses = (schemas.responses || []).reduce(\n (prev, acc) => {\n if (!acc.statusCode) {\n return prev\n }\n\n prev[acc.statusCode] = pluginManager.resolveName({\n name: acc.name,\n pluginKey,\n type,\n })\n\n return prev\n },\n {} as Record<number, string>,\n )\n\n return {\n request: schemas.request?.name\n ? pluginManager.resolveName({\n name: schemas.request.name,\n pluginKey,\n type,\n })\n : undefined,\n parameters: {\n path: schemas.pathParams?.name\n ? pluginManager.resolveName({\n name: schemas.pathParams.name,\n pluginKey,\n type,\n })\n : undefined,\n query: schemas.queryParams?.name\n ? pluginManager.resolveName({\n name: schemas.queryParams.name,\n pluginKey,\n type,\n })\n : undefined,\n header: schemas.headerParams?.name\n ? pluginManager.resolveName({\n name: schemas.headerParams.name,\n pluginKey,\n type,\n })\n : undefined,\n },\n responses: {\n ...responses,\n ['default']: pluginManager.resolveName({\n name: schemas.response.name,\n pluginKey,\n type,\n }),\n ...errors,\n },\n errors,\n }\n }\n\n return {\n getName,\n getFile,\n getSchemas,\n groupSchemasByName,\n getGroup,\n }\n}\n","import { useContext } from '@kubb/react'\n\nimport { Oas } from '../components/Oas.tsx'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\n\ntype UseOperationsProps = {\n /**\n * Filter based on path\n * Weight: 2\n */\n path?: string\n /**\n * Filter based on method\n * Weight: 1\n */\n method?: HttpMethod\n}\n\n/**\n * `useOperations` will return all the Operations\n */\nexport function useOperations({ method, path }: UseOperationsProps = {}): Operation[] {\n const { operations } = useContext(Oas.Context)\n\n if (!operations) {\n throw new Error('Operations is not defined')\n }\n let items = operations\n\n if (path) {\n items = items.filter((item) => item.path === path)\n }\n\n if (method) {\n items = items.filter((item) => item.method === method)\n }\n\n return items\n}\n","import { useContext } from '@kubb/react'\n\nimport { Schema } from '../components/Schema.tsx'\n\nimport type { SchemaContextProps } from '../components/Schema.tsx'\n\ntype UseSchemaResult = SchemaContextProps\n\n/**\n * `useSchema` will return the current `schema properties`\n */\nexport function useSchema(): UseSchemaResult {\n const props = useContext(Schema.Context)\n\n return props as UseSchemaResult\n}\n","import { useApp } from '@kubb/react'\n\nimport type { FileMetaBase, Plugin, ResolveNameParams } from '@kubb/core'\nimport type { KubbFile } from '@kubb/core/fs'\nimport { SchemaGenerator } from '../SchemaGenerator.ts'\nimport { type Schema, schemaKeywords } from '../SchemaMapper'\n\ntype FileMeta = FileMetaBase & {\n pluginKey: Plugin['key']\n name: string\n group?: {\n tag?: string\n path?: string\n }\n}\n\ntype UseSchemaManagerResult = {\n getName: (name: string, params: { pluginKey?: Plugin['key']; type: ResolveNameParams['type'] }) => string\n getFile: (\n name: string,\n params?: {\n pluginKey?: Plugin['key']\n mode?: KubbFile.Mode\n extname?: KubbFile.Extname\n group?: {\n tag?: string\n path?: string\n }\n },\n ) => KubbFile.File<FileMeta>\n getImports: (tree: Array<Schema>) => Array<KubbFile.Import>\n}\n\n/**\n * `useSchemaManager` will return some helper functions that can be used to get the schema file, get the schema name.\n */\nexport function useSchemaManager(): UseSchemaManagerResult {\n const { plugin, pluginManager } = useApp()\n\n const getName: UseSchemaManagerResult['getName'] = (name, { pluginKey = plugin.key, type }) => {\n return pluginManager.resolveName({\n name,\n pluginKey,\n type,\n })\n }\n\n const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginKey = plugin.key, extname = '.ts', group } = {}) => {\n const resolvedName = mode === 'single' ? '' : getName(name, { type: 'file', pluginKey })\n\n const file = pluginManager.getFile({\n name: resolvedName,\n extname,\n pluginKey,\n options: { type: 'file', pluginKey, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name: resolvedName,\n pluginKey,\n },\n }\n }\n\n const getImports: UseSchemaManagerResult['getImports'] = (tree) => {\n const refs = SchemaGenerator.deepSearch(tree, schemaKeywords.ref)\n\n return refs\n ?.map((item) => {\n if (!item.args.path || !item.args.isImportable) {\n return undefined\n }\n\n return {\n name: [item.args.name],\n path: item.args.path,\n }\n })\n .filter(Boolean)\n }\n\n return {\n getName,\n getFile,\n getImports,\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"hooks.cjs","names":["Oas","Operation","Oas","getName: UseOperationManagerResult['getName']","getGroup: UseOperationManagerResult['getGroup']","getSchemas: UseOperationManagerResult['getSchemas']","getFile: UseOperationManagerResult['getFile']","groupSchemasByName: UseOperationManagerResult['groupSchemasByName']","Oas","Schema","getName: UseSchemaManagerResult['getName']","getFile: UseSchemaManagerResult['getFile']","getImports: UseSchemaManagerResult['getImports']","SchemaGenerator","schemaKeywords"],"sources":["../src/hooks/useOas.ts","../src/hooks/useOperation.ts","../src/hooks/useOperationManager.ts","../src/hooks/useOperations.ts","../src/hooks/useSchema.ts","../src/hooks/useSchemaManager.ts"],"sourcesContent":["import { useContext } from '@kubb/react'\n\nimport { Oas } from '../components/Oas.tsx'\n\nimport type { Oas as OasType } from '@kubb/oas'\n\nexport function useOas(): OasType {\n const { oas } = useContext(Oas.Context)\n\n if (!oas) {\n throw new Error('Oas is not defined')\n }\n\n return oas\n}\n","import { useContext } from '@kubb/react'\n\nimport { Operation } from '../components/Operation.tsx'\n\nimport type { Operation as OperationType } from '@kubb/oas'\n\n/**\n * `useOperation` will return the current `Operation`\n */\nexport function useOperation(): OperationType {\n const { operation } = useContext(Operation.Context)\n\n if (!operation) {\n throw new Error('Operation is not defined')\n }\n\n return operation\n}\n","import { useApp, useContext } from '@kubb/react'\n\nimport { Oas } from '../components/Oas.tsx'\n\nimport type { FileMetaBase, Plugin, ResolveNameParams } from '@kubb/core'\n\nimport type { KubbFile } from '@kubb/core/fs'\nimport type { Operation, Operation as OperationType } from '@kubb/oas'\nimport type { OperationSchemas } from '../types.ts'\n\ntype FileMeta = FileMetaBase & {\n pluginKey: Plugin['key']\n name: string\n group?: {\n tag?: string\n path?: string\n }\n}\n\nexport type SchemaNames = {\n request: string | undefined\n parameters: {\n path: string | undefined\n query: string | undefined\n header: string | undefined\n }\n responses: { default?: string } & Record<number | string, string>\n errors: Record<number | string, string>\n}\n\ntype UseOperationManagerResult = {\n getName: (\n operation: OperationType,\n params: {\n prefix?: string\n suffix?: string\n pluginKey?: Plugin['key']\n type: ResolveNameParams['type']\n },\n ) => string\n getFile: (\n operation: OperationType,\n params?: {\n prefix?: string\n suffix?: string\n pluginKey?: Plugin['key']\n extname?: KubbFile.Extname\n group?: {\n tag?: string\n path?: string\n }\n },\n ) => KubbFile.File<FileMeta>\n groupSchemasByName: (\n operation: OperationType,\n params: {\n pluginKey?: Plugin['key']\n type: ResolveNameParams['type']\n },\n ) => SchemaNames\n getSchemas: (operation: Operation, params?: { pluginKey?: Plugin['key']; type?: ResolveNameParams['type'] }) => OperationSchemas\n getGroup: (operation: Operation) => FileMeta['group'] | undefined\n}\n\n/**\n * `useOperationManager` will return some helper functions that can be used to get the operation file, get the operation name.\n */\nexport function useOperationManager(): UseOperationManagerResult {\n const { plugin, pluginManager } = useApp()\n const { generator } = useContext(Oas.Context)\n\n const getName: UseOperationManagerResult['getName'] = (operation, { prefix = '', suffix = '', pluginKey = plugin.key, type }) => {\n return pluginManager.resolveName({\n name: `${prefix} ${operation.getOperationId()} ${suffix}`,\n pluginKey,\n type,\n })\n }\n\n const getGroup: UseOperationManagerResult['getGroup'] = (operation) => {\n return {\n tag: operation.getTags().at(0)?.name,\n path: operation.path,\n }\n }\n\n const getSchemas: UseOperationManagerResult['getSchemas'] = (operation, params) => {\n if (!generator) {\n throw new Error(`'generator' is not defined`)\n }\n\n return generator.getSchemas(operation, {\n resolveName: (name) =>\n pluginManager.resolveName({\n name,\n pluginKey: params?.pluginKey,\n type: params?.type,\n }),\n })\n }\n\n const getFile: UseOperationManagerResult['getFile'] = (operation, { prefix, suffix, pluginKey = plugin.key, extname = '.ts' } = {}) => {\n const name = getName(operation, { type: 'file', pluginKey, prefix, suffix })\n const group = getGroup(operation)\n\n const file = pluginManager.getFile({\n name,\n extname,\n pluginKey,\n options: { type: 'file', pluginKey, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name,\n pluginKey,\n group,\n },\n }\n }\n\n const groupSchemasByName: UseOperationManagerResult['groupSchemasByName'] = (operation, { pluginKey = plugin.key, type }) => {\n if (!generator) {\n throw new Error(`'generator' is not defined`)\n }\n\n const schemas = generator.getSchemas(operation)\n\n const errors = (schemas.errors || []).reduce(\n (prev, acc) => {\n if (!acc.statusCode) {\n return prev\n }\n\n prev[acc.statusCode] = pluginManager.resolveName({\n name: acc.name,\n pluginKey,\n type,\n })\n\n return prev\n },\n {} as Record<number, string>,\n )\n\n const responses = (schemas.responses || []).reduce(\n (prev, acc) => {\n if (!acc.statusCode) {\n return prev\n }\n\n prev[acc.statusCode] = pluginManager.resolveName({\n name: acc.name,\n pluginKey,\n type,\n })\n\n return prev\n },\n {} as Record<number, string>,\n )\n\n return {\n request: schemas.request?.name\n ? pluginManager.resolveName({\n name: schemas.request.name,\n pluginKey,\n type,\n })\n : undefined,\n parameters: {\n path: schemas.pathParams?.name\n ? pluginManager.resolveName({\n name: schemas.pathParams.name,\n pluginKey,\n type,\n })\n : undefined,\n query: schemas.queryParams?.name\n ? pluginManager.resolveName({\n name: schemas.queryParams.name,\n pluginKey,\n type,\n })\n : undefined,\n header: schemas.headerParams?.name\n ? pluginManager.resolveName({\n name: schemas.headerParams.name,\n pluginKey,\n type,\n })\n : undefined,\n },\n responses: {\n ...responses,\n ['default']: pluginManager.resolveName({\n name: schemas.response.name,\n pluginKey,\n type,\n }),\n ...errors,\n },\n errors,\n }\n }\n\n return {\n getName,\n getFile,\n getSchemas,\n groupSchemasByName,\n getGroup,\n }\n}\n","import { useContext } from '@kubb/react'\n\nimport { Oas } from '../components/Oas.tsx'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\n\ntype UseOperationsProps = {\n /**\n * Filter based on path\n * Weight: 2\n */\n path?: string\n /**\n * Filter based on method\n * Weight: 1\n */\n method?: HttpMethod\n}\n\n/**\n * `useOperations` will return all the Operations\n */\nexport function useOperations({ method, path }: UseOperationsProps = {}): Operation[] {\n const { operations } = useContext(Oas.Context)\n\n if (!operations) {\n throw new Error('Operations is not defined')\n }\n let items = operations\n\n if (path) {\n items = items.filter((item) => item.path === path)\n }\n\n if (method) {\n items = items.filter((item) => item.method === method)\n }\n\n return items\n}\n","import { useContext } from '@kubb/react'\n\nimport { Schema } from '../components/Schema.tsx'\n\nimport type { SchemaContextProps } from '../components/Schema.tsx'\n\ntype UseSchemaResult = SchemaContextProps\n\n/**\n * `useSchema` will return the current `schema properties`\n */\nexport function useSchema(): UseSchemaResult {\n const props = useContext(Schema.Context)\n\n return props as UseSchemaResult\n}\n","import { useApp } from '@kubb/react'\n\nimport type { FileMetaBase, Plugin, ResolveNameParams } from '@kubb/core'\nimport type { KubbFile } from '@kubb/core/fs'\nimport { SchemaGenerator } from '../SchemaGenerator.ts'\nimport { type Schema, schemaKeywords } from '../SchemaMapper'\n\ntype FileMeta = FileMetaBase & {\n pluginKey: Plugin['key']\n name: string\n group?: {\n tag?: string\n path?: string\n }\n}\n\ntype UseSchemaManagerResult = {\n getName: (name: string, params: { pluginKey?: Plugin['key']; type: ResolveNameParams['type'] }) => string\n getFile: (\n name: string,\n params?: {\n pluginKey?: Plugin['key']\n mode?: KubbFile.Mode\n extname?: KubbFile.Extname\n group?: {\n tag?: string\n path?: string\n }\n },\n ) => KubbFile.File<FileMeta>\n getImports: (tree: Array<Schema>) => Array<KubbFile.Import>\n}\n\n/**\n * `useSchemaManager` will return some helper functions that can be used to get the schema file, get the schema name.\n */\nexport function useSchemaManager(): UseSchemaManagerResult {\n const { plugin, pluginManager } = useApp()\n\n const getName: UseSchemaManagerResult['getName'] = (name, { pluginKey = plugin.key, type }) => {\n return pluginManager.resolveName({\n name,\n pluginKey,\n type,\n })\n }\n\n const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginKey = plugin.key, extname = '.ts', group } = {}) => {\n const resolvedName = mode === 'single' ? '' : getName(name, { type: 'file', pluginKey })\n\n const file = pluginManager.getFile({\n name: resolvedName,\n extname,\n pluginKey,\n options: { type: 'file', pluginKey, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name: resolvedName,\n pluginKey,\n },\n }\n }\n\n const getImports: UseSchemaManagerResult['getImports'] = (tree) => {\n const refs = SchemaGenerator.deepSearch(tree, schemaKeywords.ref)\n\n return refs\n ?.map((item) => {\n if (!item.args.path || !item.args.isImportable) {\n return undefined\n }\n\n return {\n name: [item.args.name],\n path: item.args.path,\n }\n })\n .filter(Boolean)\n }\n\n return {\n getName,\n getFile,\n getImports,\n }\n}\n"],"mappings":"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"}
|