@kubb/plugin-oas 5.0.0-alpha.2 → 5.0.0-alpha.21
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/{createGenerator-B8BypXNu.d.ts → createGenerator-BiZ9IsdY.d.ts} +106 -58
- package/dist/{generators-vAAte6w6.cjs → generators-85sP4GIS.cjs} +7 -7
- package/dist/generators-85sP4GIS.cjs.map +1 -0
- package/dist/{generators-B8HiBWvT.js → generators-hPE06pZB.js} +7 -7
- package/dist/generators-hPE06pZB.js.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.ts +4 -3
- package/dist/generators.js +1 -1
- package/dist/{getFooter-Pw3tLCiV.js → getFooter-Dz4u5Mg4.js} +5 -2
- package/dist/getFooter-Dz4u5Mg4.js.map +1 -0
- package/dist/{getFooter-BBzsC616.cjs → getFooter-gshcRE1-.cjs} +5 -2
- package/dist/getFooter-gshcRE1-.cjs.map +1 -0
- package/dist/hooks.cjs +26 -45
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.ts +6 -23
- package/dist/hooks.js +29 -47
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +15 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +22 -38
- package/dist/index.js +14 -14
- package/dist/index.js.map +1 -1
- package/dist/{requestBody-FpiwLR1p.cjs → requestBody-BHEEK1Z3.cjs} +87 -126
- package/dist/requestBody-BHEEK1Z3.cjs.map +1 -0
- package/dist/{requestBody-DQMKhTin.js → requestBody-bs_SwfEj.js} +77 -116
- package/dist/requestBody-bs_SwfEj.js.map +1 -0
- package/dist/utils.cjs +61 -11
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +61 -11
- package/dist/utils.js.map +1 -1
- package/package.json +7 -7
- package/src/OperationGenerator.ts +15 -15
- package/src/SchemaGenerator.ts +17 -20
- package/src/generators/createGenerator.ts +12 -15
- package/src/generators/createReactGenerator.ts +12 -15
- package/src/generators/index.ts +2 -2
- package/src/generators/jsonGenerator.ts +3 -3
- package/src/generators/types.ts +5 -40
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useOas.ts +5 -2
- package/src/hooks/useOperationManager.ts +19 -18
- package/src/hooks/useSchemaManager.ts +5 -4
- package/src/index.ts +2 -2
- package/src/plugin.ts +5 -5
- package/src/types.ts +3 -2
- package/src/utils/getBanner.ts +1 -1
- package/src/utils/getFooter.ts +1 -1
- package/src/utils/getParams.ts +2 -2
- package/src/utils.tsx +50 -137
- package/dist/generators-B8HiBWvT.js.map +0 -1
- package/dist/generators-vAAte6w6.cjs.map +0 -1
- package/dist/getFooter-BBzsC616.cjs.map +0 -1
- package/dist/getFooter-Pw3tLCiV.js.map +0 -1
- package/dist/requestBody-DQMKhTin.js.map +0 -1
- package/dist/requestBody-FpiwLR1p.cjs.map +0 -1
- package/src/hooks/useRootNode.ts +0 -25
package/dist/hooks.cjs
CHANGED
|
@@ -3,8 +3,11 @@ require("./chunk-ByKO4r7w.cjs");
|
|
|
3
3
|
let _kubb_react_fabric = require("@kubb/react-fabric");
|
|
4
4
|
let _kubb_core_hooks = require("@kubb/core/hooks");
|
|
5
5
|
//#region src/hooks/useOas.ts
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated use schemaNode or operationNode instead
|
|
8
|
+
*/
|
|
6
9
|
function useOas() {
|
|
7
|
-
const { meta } = (0, _kubb_react_fabric.
|
|
10
|
+
const { meta } = (0, _kubb_react_fabric.useFabric)();
|
|
8
11
|
return meta.oas;
|
|
9
12
|
}
|
|
10
13
|
//#endregion
|
|
@@ -14,9 +17,10 @@ function useOas() {
|
|
|
14
17
|
*/
|
|
15
18
|
function useOperationManager(generator) {
|
|
16
19
|
const plugin = (0, _kubb_core_hooks.usePlugin)();
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
+
const driver = (0, _kubb_core_hooks.useDriver)();
|
|
21
|
+
const defaultPluginName = plugin.name;
|
|
22
|
+
const getName = (operation, { prefix = "", suffix = "", pluginName = defaultPluginName, type }) => {
|
|
23
|
+
return driver.resolveName({
|
|
20
24
|
name: `${prefix} ${operation.getOperationId()} ${suffix}`,
|
|
21
25
|
pluginName,
|
|
22
26
|
type
|
|
@@ -24,19 +28,19 @@ function useOperationManager(generator) {
|
|
|
24
28
|
};
|
|
25
29
|
const getGroup = (operation) => {
|
|
26
30
|
return {
|
|
27
|
-
tag: operation.getTags().at(0)?.name,
|
|
31
|
+
tag: operation.getTags().at(0)?.name ?? "default",
|
|
28
32
|
path: operation.path
|
|
29
33
|
};
|
|
30
34
|
};
|
|
31
35
|
const getSchemas = (operation, params) => {
|
|
32
36
|
if (!generator) throw new Error(`useOperationManager: 'generator' parameter is required but was not provided`);
|
|
33
|
-
return generator.getSchemas(operation, { resolveName: (name) =>
|
|
37
|
+
return generator.getSchemas(operation, { resolveName: (name) => driver.resolveName({
|
|
34
38
|
name,
|
|
35
|
-
pluginName: params?.pluginName,
|
|
39
|
+
pluginName: params?.pluginName ?? defaultPluginName,
|
|
36
40
|
type: params?.type
|
|
37
41
|
}) });
|
|
38
42
|
};
|
|
39
|
-
const getFile = (operation, { prefix, suffix, pluginName =
|
|
43
|
+
const getFile = (operation, { prefix, suffix, pluginName = defaultPluginName, extname = ".ts" } = {}) => {
|
|
40
44
|
const name = getName(operation, {
|
|
41
45
|
type: "file",
|
|
42
46
|
pluginName,
|
|
@@ -44,7 +48,7 @@ function useOperationManager(generator) {
|
|
|
44
48
|
suffix
|
|
45
49
|
});
|
|
46
50
|
const group = getGroup(operation);
|
|
47
|
-
const file =
|
|
51
|
+
const file = driver.getFile({
|
|
48
52
|
name,
|
|
49
53
|
extname,
|
|
50
54
|
pluginName,
|
|
@@ -64,12 +68,12 @@ function useOperationManager(generator) {
|
|
|
64
68
|
}
|
|
65
69
|
};
|
|
66
70
|
};
|
|
67
|
-
const groupSchemasByName = (operation, { pluginName =
|
|
71
|
+
const groupSchemasByName = (operation, { pluginName = defaultPluginName, type }) => {
|
|
68
72
|
if (!generator) throw new Error(`useOperationManager: 'generator' parameter is required but was not provided`);
|
|
69
|
-
const schemas =
|
|
73
|
+
const schemas = getSchemas(operation);
|
|
70
74
|
const errors = (schemas.errors || []).reduce((prev, acc) => {
|
|
71
75
|
if (!acc.statusCode) return prev;
|
|
72
|
-
prev[acc.statusCode] =
|
|
76
|
+
prev[acc.statusCode] = driver.resolveName({
|
|
73
77
|
name: acc.name,
|
|
74
78
|
pluginName,
|
|
75
79
|
type
|
|
@@ -78,7 +82,7 @@ function useOperationManager(generator) {
|
|
|
78
82
|
}, {});
|
|
79
83
|
const responses = (schemas.responses || []).reduce((prev, acc) => {
|
|
80
84
|
if (!acc.statusCode) return prev;
|
|
81
|
-
prev[acc.statusCode] =
|
|
85
|
+
prev[acc.statusCode] = driver.resolveName({
|
|
82
86
|
name: acc.name,
|
|
83
87
|
pluginName,
|
|
84
88
|
type
|
|
@@ -86,23 +90,23 @@ function useOperationManager(generator) {
|
|
|
86
90
|
return prev;
|
|
87
91
|
}, {});
|
|
88
92
|
return {
|
|
89
|
-
request: schemas.request?.name ?
|
|
93
|
+
request: schemas.request?.name ? driver.resolveName({
|
|
90
94
|
name: schemas.request.name,
|
|
91
95
|
pluginName,
|
|
92
96
|
type
|
|
93
97
|
}) : void 0,
|
|
94
98
|
parameters: {
|
|
95
|
-
path: schemas.pathParams?.name ?
|
|
99
|
+
path: schemas.pathParams?.name ? driver.resolveName({
|
|
96
100
|
name: schemas.pathParams.name,
|
|
97
101
|
pluginName,
|
|
98
102
|
type
|
|
99
103
|
}) : void 0,
|
|
100
|
-
query: schemas.queryParams?.name ?
|
|
104
|
+
query: schemas.queryParams?.name ? driver.resolveName({
|
|
101
105
|
name: schemas.queryParams.name,
|
|
102
106
|
pluginName,
|
|
103
107
|
type
|
|
104
108
|
}) : void 0,
|
|
105
|
-
header: schemas.headerParams?.name ?
|
|
109
|
+
header: schemas.headerParams?.name ? driver.resolveName({
|
|
106
110
|
name: schemas.headerParams.name,
|
|
107
111
|
pluginName,
|
|
108
112
|
type
|
|
@@ -110,7 +114,7 @@ function useOperationManager(generator) {
|
|
|
110
114
|
},
|
|
111
115
|
responses: {
|
|
112
116
|
...responses,
|
|
113
|
-
["default"]:
|
|
117
|
+
["default"]: driver.resolveName({
|
|
114
118
|
name: schemas.response.name,
|
|
115
119
|
pluginName,
|
|
116
120
|
type
|
|
@@ -129,38 +133,16 @@ function useOperationManager(generator) {
|
|
|
129
133
|
};
|
|
130
134
|
}
|
|
131
135
|
//#endregion
|
|
132
|
-
//#region src/hooks/useRootNode.ts
|
|
133
|
-
/**
|
|
134
|
-
* Returns the universal `@kubb/ast` `RootNode` produced by the configured adapter.
|
|
135
|
-
*
|
|
136
|
-
* Use this hook inside generator components when you want to consume the
|
|
137
|
-
* format-agnostic AST directly instead of going through `useOas()`.
|
|
138
|
-
*
|
|
139
|
-
* Returns `undefined` when no adapter was configured (legacy OAS-only mode).
|
|
140
|
-
*
|
|
141
|
-
* @example
|
|
142
|
-
* ```tsx
|
|
143
|
-
* function MyComponent() {
|
|
144
|
-
* const rootNode = useRootNode()
|
|
145
|
-
* if (!rootNode) return null
|
|
146
|
-
* return <>{rootNode.schemas.map(s => <Schema key={s.name} node={s} />)}</>
|
|
147
|
-
* }
|
|
148
|
-
* ```
|
|
149
|
-
*/
|
|
150
|
-
function useRootNode() {
|
|
151
|
-
const { meta } = (0, _kubb_react_fabric.useApp)();
|
|
152
|
-
return meta.pluginManager?.rootNode;
|
|
153
|
-
}
|
|
154
|
-
//#endregion
|
|
155
136
|
//#region src/hooks/useSchemaManager.ts
|
|
156
137
|
/**
|
|
157
138
|
* `useSchemaManager` returns helper functions to get the schema file and schema name.
|
|
139
|
+
* @deprecated
|
|
158
140
|
*/
|
|
159
141
|
function useSchemaManager() {
|
|
160
142
|
const plugin = (0, _kubb_core_hooks.usePlugin)();
|
|
161
|
-
const
|
|
143
|
+
const driver = (0, _kubb_core_hooks.useDriver)();
|
|
162
144
|
const getName = (name, { pluginName = plugin.name, type }) => {
|
|
163
|
-
return
|
|
145
|
+
return driver.resolveName({
|
|
164
146
|
name,
|
|
165
147
|
pluginName,
|
|
166
148
|
type
|
|
@@ -171,7 +153,7 @@ function useSchemaManager() {
|
|
|
171
153
|
type: "file",
|
|
172
154
|
pluginName
|
|
173
155
|
});
|
|
174
|
-
const file =
|
|
156
|
+
const file = driver.getFile({
|
|
175
157
|
name: resolvedName,
|
|
176
158
|
extname,
|
|
177
159
|
pluginName,
|
|
@@ -198,7 +180,6 @@ function useSchemaManager() {
|
|
|
198
180
|
//#endregion
|
|
199
181
|
exports.useOas = useOas;
|
|
200
182
|
exports.useOperationManager = useOperationManager;
|
|
201
|
-
exports.useRootNode = useRootNode;
|
|
202
183
|
exports.useSchemaManager = useSchemaManager;
|
|
203
184
|
|
|
204
185
|
//# sourceMappingURL=hooks.cjs.map
|
package/dist/hooks.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.cjs","names":[],"sources":["../src/hooks/useOas.ts","../src/hooks/useOperationManager.ts","../src/hooks/useRootNode.ts","../src/hooks/useSchemaManager.ts"],"sourcesContent":["import type { Oas } from '@kubb/oas'\n\nimport { useApp } from '@kubb/react-fabric'\n\nexport function useOas(): Oas {\n const { meta } = useApp<{ oas: Oas }>()\n\n return meta.oas\n}\n","import type { FileMetaBase, PluginFactoryOptions, ResolveNameParams } from '@kubb/core'\nimport { usePlugin, usePluginManager } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Operation, Operation as OperationType } from '@kubb/oas'\nimport type { OperationGenerator } from '../OperationGenerator.ts'\nimport type { OperationSchemas } from '../types.ts'\n\ntype FileMeta = FileMetaBase & {\n pluginName: string\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 pluginName?: string\n type: ResolveNameParams['type']\n },\n ) => string\n getFile: (\n operation: OperationType,\n params?: {\n prefix?: string\n suffix?: string\n pluginName?: string\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 pluginName?: string\n type: ResolveNameParams['type']\n },\n ) => SchemaNames\n getSchemas: (operation: Operation, params?: { pluginName?: string; type?: ResolveNameParams['type'] }) => OperationSchemas\n getGroup: (operation: Operation) => FileMeta['group'] | undefined\n}\n\n/**\n * `useOperationManager` returns helper functions to get the operation file and operation name.\n */\nexport function useOperationManager<TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions>(\n generator: Omit<OperationGenerator<TPluginOptions>, 'build'>,\n): UseOperationManagerResult {\n const plugin = usePlugin()\n const pluginManager = usePluginManager()\n\n const getName: UseOperationManagerResult['getName'] = (operation, { prefix = '', suffix = '', pluginName = plugin.name, type }) => {\n return pluginManager.resolveName({\n name: `${prefix} ${operation.getOperationId()} ${suffix}`,\n pluginName,\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(`useOperationManager: 'generator' parameter is required but was not provided`)\n }\n\n return generator.getSchemas(operation, {\n resolveName: (name) =>\n pluginManager.resolveName({\n name,\n pluginName: params?.pluginName,\n type: params?.type,\n }),\n })\n }\n\n const getFile: UseOperationManagerResult['getFile'] = (operation, { prefix, suffix, pluginName = plugin.name, extname = '.ts' } = {}) => {\n const name = getName(operation, { type: 'file', pluginName, prefix, suffix })\n const group = getGroup(operation)\n\n const file = pluginManager.getFile({\n name,\n extname,\n pluginName,\n options: { type: 'file', pluginName, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name,\n pluginName,\n group,\n },\n }\n }\n\n const groupSchemasByName: UseOperationManagerResult['groupSchemasByName'] = (operation, { pluginName = plugin.name, type }) => {\n if (!generator) {\n throw new Error(`useOperationManager: 'generator' parameter is required but was not provided`)\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 pluginName,\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 pluginName,\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 pluginName,\n type,\n })\n : undefined,\n parameters: {\n path: schemas.pathParams?.name\n ? pluginManager.resolveName({\n name: schemas.pathParams.name,\n pluginName,\n type,\n })\n : undefined,\n query: schemas.queryParams?.name\n ? pluginManager.resolveName({\n name: schemas.queryParams.name,\n pluginName,\n type,\n })\n : undefined,\n header: schemas.headerParams?.name\n ? pluginManager.resolveName({\n name: schemas.headerParams.name,\n pluginName,\n type,\n })\n : undefined,\n },\n responses: {\n ...responses,\n ['default']: pluginManager.resolveName({\n name: schemas.response.name,\n pluginName,\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 type { RootNode } from '@kubb/ast/types'\nimport { useApp } from '@kubb/react-fabric'\n\n/**\n * Returns the universal `@kubb/ast` `RootNode` produced by the configured adapter.\n *\n * Use this hook inside generator components when you want to consume the\n * format-agnostic AST directly instead of going through `useOas()`.\n *\n * Returns `undefined` when no adapter was configured (legacy OAS-only mode).\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const rootNode = useRootNode()\n * if (!rootNode) return null\n * return <>{rootNode.schemas.map(s => <Schema key={s.name} node={s} />)}</>\n * }\n * ```\n */\nexport function useRootNode(): RootNode | undefined {\n const { meta } = useApp<{ pluginManager?: { rootNode?: RootNode } }>()\n\n return meta.pluginManager?.rootNode\n}\n","import type { FileMetaBase, ResolveNameParams } from '@kubb/core'\nimport { usePlugin, usePluginManager } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\n\ntype FileMeta = FileMetaBase & {\n pluginName: string\n name: string\n group?: {\n tag?: string\n path?: string\n }\n}\n\ntype UseSchemaManagerResult = {\n getName: (name: string, params: { pluginName?: string; type: ResolveNameParams['type'] }) => string\n getFile: (\n name: string,\n params?: {\n pluginName?: string\n mode?: KubbFile.Mode\n extname?: KubbFile.Extname\n group?: {\n tag?: string\n path?: string\n }\n },\n ) => KubbFile.File<FileMeta>\n}\n\n/**\n * `useSchemaManager` returns helper functions to get the schema file and schema name.\n */\nexport function useSchemaManager(): UseSchemaManagerResult {\n const plugin = usePlugin()\n const pluginManager = usePluginManager()\n\n const getName: UseSchemaManagerResult['getName'] = (name, { pluginName = plugin.name, type }) => {\n return pluginManager.resolveName({\n name,\n pluginName,\n type,\n })\n }\n\n const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginName = plugin.name, extname = '.ts', group } = {}) => {\n const resolvedName = mode === 'single' ? '' : getName(name, { type: 'file', pluginName })\n\n const file = pluginManager.getFile({\n name: resolvedName,\n extname,\n pluginName,\n options: { type: 'file', pluginName, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name: resolvedName,\n pluginName,\n },\n }\n }\n\n return {\n getName,\n getFile,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.cjs","names":[],"sources":["../src/hooks/useOas.ts","../src/hooks/useOperationManager.ts","../src/hooks/useSchemaManager.ts"],"sourcesContent":["import type { Oas } from '@kubb/oas'\n\nimport { useFabric } from '@kubb/react-fabric'\n\n/**\n * @deprecated use schemaNode or operationNode instead\n */\nexport function useOas(): Oas {\n const { meta } = useFabric<{ oas: Oas }>()\n\n return meta.oas\n}\n","import type { FileMetaBase, PluginFactoryOptions, ResolveNameParams } from '@kubb/core'\nimport { useDriver, usePlugin } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Operation, Operation as OperationType } from '@kubb/oas'\nimport type { OperationGenerator } from '../OperationGenerator.ts'\nimport type { OperationSchemas } from '../types.ts'\n\ntype FileMeta = FileMetaBase & {\n pluginName: string\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 pluginName?: string\n type: ResolveNameParams['type']\n },\n ) => string\n getFile: (\n operation: OperationType,\n params?: {\n prefix?: string\n suffix?: string\n pluginName?: string\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 pluginName?: string\n type: ResolveNameParams['type']\n },\n ) => SchemaNames\n getSchemas: (operation: Operation, params?: { pluginName?: string; type?: ResolveNameParams['type'] }) => OperationSchemas\n getGroup: (operation: Operation) => FileMeta['group'] | undefined\n}\n\n/**\n * `useOperationManager` returns helper functions to get the operation file and operation name.\n */\nexport function useOperationManager<TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions>(\n generator: Omit<OperationGenerator<TPluginOptions>, 'build'>,\n): UseOperationManagerResult {\n const plugin = usePlugin()\n const driver = useDriver()\n const defaultPluginName = plugin.name\n\n const getName: UseOperationManagerResult['getName'] = (operation, { prefix = '', suffix = '', pluginName = defaultPluginName, type }) => {\n return driver.resolveName({\n name: `${prefix} ${operation.getOperationId()} ${suffix}`,\n pluginName,\n type,\n })\n }\n\n const getGroup: UseOperationManagerResult['getGroup'] = (operation) => {\n return {\n tag: operation.getTags().at(0)?.name ?? 'default',\n path: operation.path,\n }\n }\n\n const getSchemas: UseOperationManagerResult['getSchemas'] = (operation, params) => {\n if (!generator) {\n throw new Error(`useOperationManager: 'generator' parameter is required but was not provided`)\n }\n\n return generator.getSchemas(operation, {\n resolveName: (name) =>\n driver.resolveName({\n name,\n pluginName: params?.pluginName ?? defaultPluginName,\n type: params?.type,\n }),\n })\n }\n\n const getFile: UseOperationManagerResult['getFile'] = (operation, { prefix, suffix, pluginName = defaultPluginName, extname = '.ts' } = {}) => {\n const name = getName(operation, { type: 'file', pluginName, prefix, suffix })\n const group = getGroup(operation)\n\n const file = driver.getFile({\n name,\n extname,\n pluginName,\n options: { type: 'file', pluginName, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name,\n pluginName,\n group,\n },\n }\n }\n\n const groupSchemasByName: UseOperationManagerResult['groupSchemasByName'] = (operation, { pluginName = defaultPluginName, type }) => {\n if (!generator) {\n throw new Error(`useOperationManager: 'generator' parameter is required but was not provided`)\n }\n\n const schemas = 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] = driver.resolveName({\n name: acc.name,\n pluginName,\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] = driver.resolveName({\n name: acc.name,\n pluginName,\n type,\n })\n\n return prev\n },\n {} as Record<number, string>,\n )\n\n return {\n request: schemas.request?.name\n ? driver.resolveName({\n name: schemas.request.name,\n pluginName,\n type,\n })\n : undefined,\n parameters: {\n path: schemas.pathParams?.name\n ? driver.resolveName({\n name: schemas.pathParams.name,\n pluginName,\n type,\n })\n : undefined,\n query: schemas.queryParams?.name\n ? driver.resolveName({\n name: schemas.queryParams.name,\n pluginName,\n type,\n })\n : undefined,\n header: schemas.headerParams?.name\n ? driver.resolveName({\n name: schemas.headerParams.name,\n pluginName,\n type,\n })\n : undefined,\n },\n responses: {\n ...responses,\n ['default']: driver.resolveName({\n name: schemas.response.name,\n pluginName,\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 type { FileMetaBase, ResolveNameParams } from '@kubb/core'\nimport { useDriver, usePlugin } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\n\ntype FileMeta = FileMetaBase & {\n pluginName: string\n name: string\n group?: {\n tag?: string\n path?: string\n }\n}\n\ntype UseSchemaManagerResult = {\n getName: (name: string, params: { pluginName?: string; type: ResolveNameParams['type'] }) => string\n getFile: (\n name: string,\n params?: {\n pluginName?: string\n mode?: KubbFile.Mode\n extname?: KubbFile.Extname\n group?: {\n tag?: string\n path?: string\n }\n },\n ) => KubbFile.File<FileMeta>\n}\n\n/**\n * `useSchemaManager` returns helper functions to get the schema file and schema name.\n * @deprecated\n */\nexport function useSchemaManager(): UseSchemaManagerResult {\n const plugin = usePlugin()\n const driver = useDriver()\n\n const getName: UseSchemaManagerResult['getName'] = (name, { pluginName = plugin.name, type }) => {\n return driver.resolveName({\n name,\n pluginName,\n type,\n })\n }\n\n const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginName = plugin.name, extname = '.ts', group } = {}) => {\n const resolvedName = mode === 'single' ? '' : getName(name, { type: 'file', pluginName })\n\n const file = driver.getFile({\n name: resolvedName,\n extname,\n pluginName,\n options: { type: 'file', pluginName, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name: resolvedName,\n pluginName,\n },\n }\n }\n\n return {\n getName,\n getFile,\n }\n}\n"],"mappings":"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"}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { t as __name } from "./chunk--u3MIqq1.js";
|
|
2
|
-
import {
|
|
2
|
+
import { d as OperationGenerator, g as OperationSchemas } from "./createGenerator-BiZ9IsdY.js";
|
|
3
3
|
import { Oas, Operation } from "@kubb/oas";
|
|
4
4
|
import { FileMetaBase, PluginFactoryOptions, ResolveNameParams } from "@kubb/core";
|
|
5
5
|
import { KubbFile } from "@kubb/fabric-core/types";
|
|
6
|
-
import { RootNode } from "@kubb/ast/types";
|
|
7
6
|
|
|
8
7
|
//#region src/hooks/useOas.d.ts
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated use schemaNode or operationNode instead
|
|
10
|
+
*/
|
|
9
11
|
declare function useOas(): Oas;
|
|
10
12
|
//#endregion
|
|
11
13
|
//#region src/hooks/useOperationManager.d.ts
|
|
@@ -61,26 +63,6 @@ type UseOperationManagerResult = {
|
|
|
61
63
|
*/
|
|
62
64
|
declare function useOperationManager<TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions>(generator: Omit<OperationGenerator<TPluginOptions>, 'build'>): UseOperationManagerResult;
|
|
63
65
|
//#endregion
|
|
64
|
-
//#region src/hooks/useRootNode.d.ts
|
|
65
|
-
/**
|
|
66
|
-
* Returns the universal `@kubb/ast` `RootNode` produced by the configured adapter.
|
|
67
|
-
*
|
|
68
|
-
* Use this hook inside generator components when you want to consume the
|
|
69
|
-
* format-agnostic AST directly instead of going through `useOas()`.
|
|
70
|
-
*
|
|
71
|
-
* Returns `undefined` when no adapter was configured (legacy OAS-only mode).
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```tsx
|
|
75
|
-
* function MyComponent() {
|
|
76
|
-
* const rootNode = useRootNode()
|
|
77
|
-
* if (!rootNode) return null
|
|
78
|
-
* return <>{rootNode.schemas.map(s => <Schema key={s.name} node={s} />)}</>
|
|
79
|
-
* }
|
|
80
|
-
* ```
|
|
81
|
-
*/
|
|
82
|
-
declare function useRootNode(): RootNode | undefined;
|
|
83
|
-
//#endregion
|
|
84
66
|
//#region src/hooks/useSchemaManager.d.ts
|
|
85
67
|
type FileMeta = FileMetaBase & {
|
|
86
68
|
pluginName: string;
|
|
@@ -107,8 +89,9 @@ type UseSchemaManagerResult = {
|
|
|
107
89
|
};
|
|
108
90
|
/**
|
|
109
91
|
* `useSchemaManager` returns helper functions to get the schema file and schema name.
|
|
92
|
+
* @deprecated
|
|
110
93
|
*/
|
|
111
94
|
declare function useSchemaManager(): UseSchemaManagerResult;
|
|
112
95
|
//#endregion
|
|
113
|
-
export { type SchemaNames, useOas, useOperationManager,
|
|
96
|
+
export { type SchemaNames, useOas, useOperationManager, useSchemaManager };
|
|
114
97
|
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/hooks.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import "./chunk--u3MIqq1.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { useFabric } from "@kubb/react-fabric";
|
|
3
|
+
import { useDriver, usePlugin } from "@kubb/core/hooks";
|
|
4
4
|
//#region src/hooks/useOas.ts
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated use schemaNode or operationNode instead
|
|
7
|
+
*/
|
|
5
8
|
function useOas() {
|
|
6
|
-
const { meta } =
|
|
9
|
+
const { meta } = useFabric();
|
|
7
10
|
return meta.oas;
|
|
8
11
|
}
|
|
9
12
|
//#endregion
|
|
@@ -13,9 +16,10 @@ function useOas() {
|
|
|
13
16
|
*/
|
|
14
17
|
function useOperationManager(generator) {
|
|
15
18
|
const plugin = usePlugin();
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
+
const driver = useDriver();
|
|
20
|
+
const defaultPluginName = plugin.name;
|
|
21
|
+
const getName = (operation, { prefix = "", suffix = "", pluginName = defaultPluginName, type }) => {
|
|
22
|
+
return driver.resolveName({
|
|
19
23
|
name: `${prefix} ${operation.getOperationId()} ${suffix}`,
|
|
20
24
|
pluginName,
|
|
21
25
|
type
|
|
@@ -23,19 +27,19 @@ function useOperationManager(generator) {
|
|
|
23
27
|
};
|
|
24
28
|
const getGroup = (operation) => {
|
|
25
29
|
return {
|
|
26
|
-
tag: operation.getTags().at(0)?.name,
|
|
30
|
+
tag: operation.getTags().at(0)?.name ?? "default",
|
|
27
31
|
path: operation.path
|
|
28
32
|
};
|
|
29
33
|
};
|
|
30
34
|
const getSchemas = (operation, params) => {
|
|
31
35
|
if (!generator) throw new Error(`useOperationManager: 'generator' parameter is required but was not provided`);
|
|
32
|
-
return generator.getSchemas(operation, { resolveName: (name) =>
|
|
36
|
+
return generator.getSchemas(operation, { resolveName: (name) => driver.resolveName({
|
|
33
37
|
name,
|
|
34
|
-
pluginName: params?.pluginName,
|
|
38
|
+
pluginName: params?.pluginName ?? defaultPluginName,
|
|
35
39
|
type: params?.type
|
|
36
40
|
}) });
|
|
37
41
|
};
|
|
38
|
-
const getFile = (operation, { prefix, suffix, pluginName =
|
|
42
|
+
const getFile = (operation, { prefix, suffix, pluginName = defaultPluginName, extname = ".ts" } = {}) => {
|
|
39
43
|
const name = getName(operation, {
|
|
40
44
|
type: "file",
|
|
41
45
|
pluginName,
|
|
@@ -43,7 +47,7 @@ function useOperationManager(generator) {
|
|
|
43
47
|
suffix
|
|
44
48
|
});
|
|
45
49
|
const group = getGroup(operation);
|
|
46
|
-
const file =
|
|
50
|
+
const file = driver.getFile({
|
|
47
51
|
name,
|
|
48
52
|
extname,
|
|
49
53
|
pluginName,
|
|
@@ -63,12 +67,12 @@ function useOperationManager(generator) {
|
|
|
63
67
|
}
|
|
64
68
|
};
|
|
65
69
|
};
|
|
66
|
-
const groupSchemasByName = (operation, { pluginName =
|
|
70
|
+
const groupSchemasByName = (operation, { pluginName = defaultPluginName, type }) => {
|
|
67
71
|
if (!generator) throw new Error(`useOperationManager: 'generator' parameter is required but was not provided`);
|
|
68
|
-
const schemas =
|
|
72
|
+
const schemas = getSchemas(operation);
|
|
69
73
|
const errors = (schemas.errors || []).reduce((prev, acc) => {
|
|
70
74
|
if (!acc.statusCode) return prev;
|
|
71
|
-
prev[acc.statusCode] =
|
|
75
|
+
prev[acc.statusCode] = driver.resolveName({
|
|
72
76
|
name: acc.name,
|
|
73
77
|
pluginName,
|
|
74
78
|
type
|
|
@@ -77,7 +81,7 @@ function useOperationManager(generator) {
|
|
|
77
81
|
}, {});
|
|
78
82
|
const responses = (schemas.responses || []).reduce((prev, acc) => {
|
|
79
83
|
if (!acc.statusCode) return prev;
|
|
80
|
-
prev[acc.statusCode] =
|
|
84
|
+
prev[acc.statusCode] = driver.resolveName({
|
|
81
85
|
name: acc.name,
|
|
82
86
|
pluginName,
|
|
83
87
|
type
|
|
@@ -85,23 +89,23 @@ function useOperationManager(generator) {
|
|
|
85
89
|
return prev;
|
|
86
90
|
}, {});
|
|
87
91
|
return {
|
|
88
|
-
request: schemas.request?.name ?
|
|
92
|
+
request: schemas.request?.name ? driver.resolveName({
|
|
89
93
|
name: schemas.request.name,
|
|
90
94
|
pluginName,
|
|
91
95
|
type
|
|
92
96
|
}) : void 0,
|
|
93
97
|
parameters: {
|
|
94
|
-
path: schemas.pathParams?.name ?
|
|
98
|
+
path: schemas.pathParams?.name ? driver.resolveName({
|
|
95
99
|
name: schemas.pathParams.name,
|
|
96
100
|
pluginName,
|
|
97
101
|
type
|
|
98
102
|
}) : void 0,
|
|
99
|
-
query: schemas.queryParams?.name ?
|
|
103
|
+
query: schemas.queryParams?.name ? driver.resolveName({
|
|
100
104
|
name: schemas.queryParams.name,
|
|
101
105
|
pluginName,
|
|
102
106
|
type
|
|
103
107
|
}) : void 0,
|
|
104
|
-
header: schemas.headerParams?.name ?
|
|
108
|
+
header: schemas.headerParams?.name ? driver.resolveName({
|
|
105
109
|
name: schemas.headerParams.name,
|
|
106
110
|
pluginName,
|
|
107
111
|
type
|
|
@@ -109,7 +113,7 @@ function useOperationManager(generator) {
|
|
|
109
113
|
},
|
|
110
114
|
responses: {
|
|
111
115
|
...responses,
|
|
112
|
-
["default"]:
|
|
116
|
+
["default"]: driver.resolveName({
|
|
113
117
|
name: schemas.response.name,
|
|
114
118
|
pluginName,
|
|
115
119
|
type
|
|
@@ -128,38 +132,16 @@ function useOperationManager(generator) {
|
|
|
128
132
|
};
|
|
129
133
|
}
|
|
130
134
|
//#endregion
|
|
131
|
-
//#region src/hooks/useRootNode.ts
|
|
132
|
-
/**
|
|
133
|
-
* Returns the universal `@kubb/ast` `RootNode` produced by the configured adapter.
|
|
134
|
-
*
|
|
135
|
-
* Use this hook inside generator components when you want to consume the
|
|
136
|
-
* format-agnostic AST directly instead of going through `useOas()`.
|
|
137
|
-
*
|
|
138
|
-
* Returns `undefined` when no adapter was configured (legacy OAS-only mode).
|
|
139
|
-
*
|
|
140
|
-
* @example
|
|
141
|
-
* ```tsx
|
|
142
|
-
* function MyComponent() {
|
|
143
|
-
* const rootNode = useRootNode()
|
|
144
|
-
* if (!rootNode) return null
|
|
145
|
-
* return <>{rootNode.schemas.map(s => <Schema key={s.name} node={s} />)}</>
|
|
146
|
-
* }
|
|
147
|
-
* ```
|
|
148
|
-
*/
|
|
149
|
-
function useRootNode() {
|
|
150
|
-
const { meta } = useApp();
|
|
151
|
-
return meta.pluginManager?.rootNode;
|
|
152
|
-
}
|
|
153
|
-
//#endregion
|
|
154
135
|
//#region src/hooks/useSchemaManager.ts
|
|
155
136
|
/**
|
|
156
137
|
* `useSchemaManager` returns helper functions to get the schema file and schema name.
|
|
138
|
+
* @deprecated
|
|
157
139
|
*/
|
|
158
140
|
function useSchemaManager() {
|
|
159
141
|
const plugin = usePlugin();
|
|
160
|
-
const
|
|
142
|
+
const driver = useDriver();
|
|
161
143
|
const getName = (name, { pluginName = plugin.name, type }) => {
|
|
162
|
-
return
|
|
144
|
+
return driver.resolveName({
|
|
163
145
|
name,
|
|
164
146
|
pluginName,
|
|
165
147
|
type
|
|
@@ -170,7 +152,7 @@ function useSchemaManager() {
|
|
|
170
152
|
type: "file",
|
|
171
153
|
pluginName
|
|
172
154
|
});
|
|
173
|
-
const file =
|
|
155
|
+
const file = driver.getFile({
|
|
174
156
|
name: resolvedName,
|
|
175
157
|
extname,
|
|
176
158
|
pluginName,
|
|
@@ -195,6 +177,6 @@ function useSchemaManager() {
|
|
|
195
177
|
};
|
|
196
178
|
}
|
|
197
179
|
//#endregion
|
|
198
|
-
export { useOas, useOperationManager,
|
|
180
|
+
export { useOas, useOperationManager, useSchemaManager };
|
|
199
181
|
|
|
200
182
|
//# sourceMappingURL=hooks.js.map
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","names":[],"sources":["../src/hooks/useOas.ts","../src/hooks/useOperationManager.ts","../src/hooks/useRootNode.ts","../src/hooks/useSchemaManager.ts"],"sourcesContent":["import type { Oas } from '@kubb/oas'\n\nimport { useApp } from '@kubb/react-fabric'\n\nexport function useOas(): Oas {\n const { meta } = useApp<{ oas: Oas }>()\n\n return meta.oas\n}\n","import type { FileMetaBase, PluginFactoryOptions, ResolveNameParams } from '@kubb/core'\nimport { usePlugin, usePluginManager } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Operation, Operation as OperationType } from '@kubb/oas'\nimport type { OperationGenerator } from '../OperationGenerator.ts'\nimport type { OperationSchemas } from '../types.ts'\n\ntype FileMeta = FileMetaBase & {\n pluginName: string\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 pluginName?: string\n type: ResolveNameParams['type']\n },\n ) => string\n getFile: (\n operation: OperationType,\n params?: {\n prefix?: string\n suffix?: string\n pluginName?: string\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 pluginName?: string\n type: ResolveNameParams['type']\n },\n ) => SchemaNames\n getSchemas: (operation: Operation, params?: { pluginName?: string; type?: ResolveNameParams['type'] }) => OperationSchemas\n getGroup: (operation: Operation) => FileMeta['group'] | undefined\n}\n\n/**\n * `useOperationManager` returns helper functions to get the operation file and operation name.\n */\nexport function useOperationManager<TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions>(\n generator: Omit<OperationGenerator<TPluginOptions>, 'build'>,\n): UseOperationManagerResult {\n const plugin = usePlugin()\n const pluginManager = usePluginManager()\n\n const getName: UseOperationManagerResult['getName'] = (operation, { prefix = '', suffix = '', pluginName = plugin.name, type }) => {\n return pluginManager.resolveName({\n name: `${prefix} ${operation.getOperationId()} ${suffix}`,\n pluginName,\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(`useOperationManager: 'generator' parameter is required but was not provided`)\n }\n\n return generator.getSchemas(operation, {\n resolveName: (name) =>\n pluginManager.resolveName({\n name,\n pluginName: params?.pluginName,\n type: params?.type,\n }),\n })\n }\n\n const getFile: UseOperationManagerResult['getFile'] = (operation, { prefix, suffix, pluginName = plugin.name, extname = '.ts' } = {}) => {\n const name = getName(operation, { type: 'file', pluginName, prefix, suffix })\n const group = getGroup(operation)\n\n const file = pluginManager.getFile({\n name,\n extname,\n pluginName,\n options: { type: 'file', pluginName, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name,\n pluginName,\n group,\n },\n }\n }\n\n const groupSchemasByName: UseOperationManagerResult['groupSchemasByName'] = (operation, { pluginName = plugin.name, type }) => {\n if (!generator) {\n throw new Error(`useOperationManager: 'generator' parameter is required but was not provided`)\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 pluginName,\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 pluginName,\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 pluginName,\n type,\n })\n : undefined,\n parameters: {\n path: schemas.pathParams?.name\n ? pluginManager.resolveName({\n name: schemas.pathParams.name,\n pluginName,\n type,\n })\n : undefined,\n query: schemas.queryParams?.name\n ? pluginManager.resolveName({\n name: schemas.queryParams.name,\n pluginName,\n type,\n })\n : undefined,\n header: schemas.headerParams?.name\n ? pluginManager.resolveName({\n name: schemas.headerParams.name,\n pluginName,\n type,\n })\n : undefined,\n },\n responses: {\n ...responses,\n ['default']: pluginManager.resolveName({\n name: schemas.response.name,\n pluginName,\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 type { RootNode } from '@kubb/ast/types'\nimport { useApp } from '@kubb/react-fabric'\n\n/**\n * Returns the universal `@kubb/ast` `RootNode` produced by the configured adapter.\n *\n * Use this hook inside generator components when you want to consume the\n * format-agnostic AST directly instead of going through `useOas()`.\n *\n * Returns `undefined` when no adapter was configured (legacy OAS-only mode).\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const rootNode = useRootNode()\n * if (!rootNode) return null\n * return <>{rootNode.schemas.map(s => <Schema key={s.name} node={s} />)}</>\n * }\n * ```\n */\nexport function useRootNode(): RootNode | undefined {\n const { meta } = useApp<{ pluginManager?: { rootNode?: RootNode } }>()\n\n return meta.pluginManager?.rootNode\n}\n","import type { FileMetaBase, ResolveNameParams } from '@kubb/core'\nimport { usePlugin, usePluginManager } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\n\ntype FileMeta = FileMetaBase & {\n pluginName: string\n name: string\n group?: {\n tag?: string\n path?: string\n }\n}\n\ntype UseSchemaManagerResult = {\n getName: (name: string, params: { pluginName?: string; type: ResolveNameParams['type'] }) => string\n getFile: (\n name: string,\n params?: {\n pluginName?: string\n mode?: KubbFile.Mode\n extname?: KubbFile.Extname\n group?: {\n tag?: string\n path?: string\n }\n },\n ) => KubbFile.File<FileMeta>\n}\n\n/**\n * `useSchemaManager` returns helper functions to get the schema file and schema name.\n */\nexport function useSchemaManager(): UseSchemaManagerResult {\n const plugin = usePlugin()\n const pluginManager = usePluginManager()\n\n const getName: UseSchemaManagerResult['getName'] = (name, { pluginName = plugin.name, type }) => {\n return pluginManager.resolveName({\n name,\n pluginName,\n type,\n })\n }\n\n const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginName = plugin.name, extname = '.ts', group } = {}) => {\n const resolvedName = mode === 'single' ? '' : getName(name, { type: 'file', pluginName })\n\n const file = pluginManager.getFile({\n name: resolvedName,\n extname,\n pluginName,\n options: { type: 'file', pluginName, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name: resolvedName,\n pluginName,\n },\n }\n }\n\n return {\n getName,\n getFile,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","names":[],"sources":["../src/hooks/useOas.ts","../src/hooks/useOperationManager.ts","../src/hooks/useSchemaManager.ts"],"sourcesContent":["import type { Oas } from '@kubb/oas'\n\nimport { useFabric } from '@kubb/react-fabric'\n\n/**\n * @deprecated use schemaNode or operationNode instead\n */\nexport function useOas(): Oas {\n const { meta } = useFabric<{ oas: Oas }>()\n\n return meta.oas\n}\n","import type { FileMetaBase, PluginFactoryOptions, ResolveNameParams } from '@kubb/core'\nimport { useDriver, usePlugin } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Operation, Operation as OperationType } from '@kubb/oas'\nimport type { OperationGenerator } from '../OperationGenerator.ts'\nimport type { OperationSchemas } from '../types.ts'\n\ntype FileMeta = FileMetaBase & {\n pluginName: string\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 pluginName?: string\n type: ResolveNameParams['type']\n },\n ) => string\n getFile: (\n operation: OperationType,\n params?: {\n prefix?: string\n suffix?: string\n pluginName?: string\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 pluginName?: string\n type: ResolveNameParams['type']\n },\n ) => SchemaNames\n getSchemas: (operation: Operation, params?: { pluginName?: string; type?: ResolveNameParams['type'] }) => OperationSchemas\n getGroup: (operation: Operation) => FileMeta['group'] | undefined\n}\n\n/**\n * `useOperationManager` returns helper functions to get the operation file and operation name.\n */\nexport function useOperationManager<TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions>(\n generator: Omit<OperationGenerator<TPluginOptions>, 'build'>,\n): UseOperationManagerResult {\n const plugin = usePlugin()\n const driver = useDriver()\n const defaultPluginName = plugin.name\n\n const getName: UseOperationManagerResult['getName'] = (operation, { prefix = '', suffix = '', pluginName = defaultPluginName, type }) => {\n return driver.resolveName({\n name: `${prefix} ${operation.getOperationId()} ${suffix}`,\n pluginName,\n type,\n })\n }\n\n const getGroup: UseOperationManagerResult['getGroup'] = (operation) => {\n return {\n tag: operation.getTags().at(0)?.name ?? 'default',\n path: operation.path,\n }\n }\n\n const getSchemas: UseOperationManagerResult['getSchemas'] = (operation, params) => {\n if (!generator) {\n throw new Error(`useOperationManager: 'generator' parameter is required but was not provided`)\n }\n\n return generator.getSchemas(operation, {\n resolveName: (name) =>\n driver.resolveName({\n name,\n pluginName: params?.pluginName ?? defaultPluginName,\n type: params?.type,\n }),\n })\n }\n\n const getFile: UseOperationManagerResult['getFile'] = (operation, { prefix, suffix, pluginName = defaultPluginName, extname = '.ts' } = {}) => {\n const name = getName(operation, { type: 'file', pluginName, prefix, suffix })\n const group = getGroup(operation)\n\n const file = driver.getFile({\n name,\n extname,\n pluginName,\n options: { type: 'file', pluginName, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name,\n pluginName,\n group,\n },\n }\n }\n\n const groupSchemasByName: UseOperationManagerResult['groupSchemasByName'] = (operation, { pluginName = defaultPluginName, type }) => {\n if (!generator) {\n throw new Error(`useOperationManager: 'generator' parameter is required but was not provided`)\n }\n\n const schemas = 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] = driver.resolveName({\n name: acc.name,\n pluginName,\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] = driver.resolveName({\n name: acc.name,\n pluginName,\n type,\n })\n\n return prev\n },\n {} as Record<number, string>,\n )\n\n return {\n request: schemas.request?.name\n ? driver.resolveName({\n name: schemas.request.name,\n pluginName,\n type,\n })\n : undefined,\n parameters: {\n path: schemas.pathParams?.name\n ? driver.resolveName({\n name: schemas.pathParams.name,\n pluginName,\n type,\n })\n : undefined,\n query: schemas.queryParams?.name\n ? driver.resolveName({\n name: schemas.queryParams.name,\n pluginName,\n type,\n })\n : undefined,\n header: schemas.headerParams?.name\n ? driver.resolveName({\n name: schemas.headerParams.name,\n pluginName,\n type,\n })\n : undefined,\n },\n responses: {\n ...responses,\n ['default']: driver.resolveName({\n name: schemas.response.name,\n pluginName,\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 type { FileMetaBase, ResolveNameParams } from '@kubb/core'\nimport { useDriver, usePlugin } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\n\ntype FileMeta = FileMetaBase & {\n pluginName: string\n name: string\n group?: {\n tag?: string\n path?: string\n }\n}\n\ntype UseSchemaManagerResult = {\n getName: (name: string, params: { pluginName?: string; type: ResolveNameParams['type'] }) => string\n getFile: (\n name: string,\n params?: {\n pluginName?: string\n mode?: KubbFile.Mode\n extname?: KubbFile.Extname\n group?: {\n tag?: string\n path?: string\n }\n },\n ) => KubbFile.File<FileMeta>\n}\n\n/**\n * `useSchemaManager` returns helper functions to get the schema file and schema name.\n * @deprecated\n */\nexport function useSchemaManager(): UseSchemaManagerResult {\n const plugin = usePlugin()\n const driver = useDriver()\n\n const getName: UseSchemaManagerResult['getName'] = (name, { pluginName = plugin.name, type }) => {\n return driver.resolveName({\n name,\n pluginName,\n type,\n })\n }\n\n const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginName = plugin.name, extname = '.ts', group } = {}) => {\n const resolvedName = mode === 'single' ? '' : getName(name, { type: 'file', pluginName })\n\n const file = driver.getFile({\n name: resolvedName,\n extname,\n pluginName,\n options: { type: 'file', pluginName, group },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name: resolvedName,\n pluginName,\n },\n }\n }\n\n return {\n getName,\n getFile,\n }\n}\n"],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("./chunk-ByKO4r7w.cjs");
|
|
3
|
-
const require_generators = require("./generators-
|
|
4
|
-
const require_getFooter = require("./getFooter-
|
|
5
|
-
const require_requestBody = require("./requestBody-
|
|
3
|
+
const require_generators = require("./generators-85sP4GIS.cjs");
|
|
4
|
+
const require_getFooter = require("./getFooter-gshcRE1-.cjs");
|
|
5
|
+
const require_requestBody = require("./requestBody-BHEEK1Z3.cjs");
|
|
6
6
|
const require_SchemaMapper = require("./SchemaMapper-CeavHZlp.cjs");
|
|
7
7
|
let node_path = require("node:path");
|
|
8
8
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -228,8 +228,8 @@ var OperationGenerator = class {
|
|
|
228
228
|
const operationTasks = operations.map(({ operation, method }) => operationLimit(async () => {
|
|
229
229
|
const options = this.getOptions(operation, method);
|
|
230
230
|
if (v1Generator.type === "react") {
|
|
231
|
-
await require_requestBody.
|
|
232
|
-
config: this.context.
|
|
231
|
+
await require_requestBody.renderOperation(operation, {
|
|
232
|
+
config: this.context.driver.config,
|
|
233
233
|
fabric: this.context.fabric,
|
|
234
234
|
Component: v1Generator.Operation,
|
|
235
235
|
generator: this,
|
|
@@ -245,7 +245,7 @@ var OperationGenerator = class {
|
|
|
245
245
|
}
|
|
246
246
|
return await v1Generator.operation?.({
|
|
247
247
|
generator: this,
|
|
248
|
-
config: this.context.
|
|
248
|
+
config: this.context.driver.config,
|
|
249
249
|
operation,
|
|
250
250
|
plugin: {
|
|
251
251
|
...this.context.plugin,
|
|
@@ -258,9 +258,9 @@ var OperationGenerator = class {
|
|
|
258
258
|
}));
|
|
259
259
|
const opResultsFlat = (await Promise.all(operationTasks)).flat();
|
|
260
260
|
if (v1Generator.type === "react") {
|
|
261
|
-
await require_requestBody.
|
|
261
|
+
await require_requestBody.renderOperations(operations.map((op) => op.operation), {
|
|
262
262
|
fabric: this.context.fabric,
|
|
263
|
-
config: this.context.
|
|
263
|
+
config: this.context.driver.config,
|
|
264
264
|
Component: v1Generator.Operations,
|
|
265
265
|
generator: this,
|
|
266
266
|
plugin: this.context.plugin
|
|
@@ -269,7 +269,7 @@ var OperationGenerator = class {
|
|
|
269
269
|
}
|
|
270
270
|
const operationsResult = await v1Generator.operations?.({
|
|
271
271
|
generator: this,
|
|
272
|
-
config: this.context.
|
|
272
|
+
config: this.context.driver.config,
|
|
273
273
|
operations: operations.map((op) => op.operation),
|
|
274
274
|
plugin: this.context.plugin
|
|
275
275
|
});
|
|
@@ -281,7 +281,7 @@ var OperationGenerator = class {
|
|
|
281
281
|
//#endregion
|
|
282
282
|
//#region src/plugin.ts
|
|
283
283
|
const pluginOasName = "plugin-oas";
|
|
284
|
-
const pluginOas = (0, _kubb_core.
|
|
284
|
+
const pluginOas = (0, _kubb_core.createPlugin)((options) => {
|
|
285
285
|
const { output = { path: "schemas" }, group, validate = true, generators = [require_generators.jsonGenerator], serverIndex, serverVariables, contentType, oasClass, discriminator = "strict", collisionDetection = false } = options;
|
|
286
286
|
const getOas = async ({ validate, config, events }) => {
|
|
287
287
|
const oas = await (0, _kubb_oas.parseFromConfig)(config, oasClass);
|
|
@@ -368,7 +368,7 @@ const pluginOas = (0, _kubb_core.definePlugin)((options) => {
|
|
|
368
368
|
}, {
|
|
369
369
|
fabric: this.fabric,
|
|
370
370
|
oas,
|
|
371
|
-
|
|
371
|
+
driver: this.driver,
|
|
372
372
|
events: this.events,
|
|
373
373
|
plugin: this.plugin,
|
|
374
374
|
contentType,
|
|
@@ -381,7 +381,7 @@ const pluginOas = (0, _kubb_core.definePlugin)((options) => {
|
|
|
381
381
|
const operationFiles = await new OperationGenerator(this.plugin.options, {
|
|
382
382
|
fabric: this.fabric,
|
|
383
383
|
oas,
|
|
384
|
-
|
|
384
|
+
driver: this.driver,
|
|
385
385
|
events: this.events,
|
|
386
386
|
plugin: this.plugin,
|
|
387
387
|
contentType,
|
|
@@ -407,9 +407,6 @@ const createReactGenerator = require_generators.createReactGenerator;
|
|
|
407
407
|
//#endregion
|
|
408
408
|
exports.OperationGenerator = OperationGenerator;
|
|
409
409
|
exports.SchemaGenerator = require_requestBody.SchemaGenerator;
|
|
410
|
-
exports.buildOperation = require_requestBody.buildOperation;
|
|
411
|
-
exports.buildOperations = require_requestBody.buildOperations;
|
|
412
|
-
exports.buildSchema = require_requestBody.buildSchema;
|
|
413
410
|
exports.createGenerator = createGenerator;
|
|
414
411
|
exports.createParser = createParser;
|
|
415
412
|
exports.createReactGenerator = createReactGenerator;
|
|
@@ -417,6 +414,9 @@ exports.findSchemaKeyword = findSchemaKeyword;
|
|
|
417
414
|
exports.isKeyword = require_SchemaMapper.isKeyword;
|
|
418
415
|
exports.pluginOas = pluginOas;
|
|
419
416
|
exports.pluginOasName = pluginOasName;
|
|
417
|
+
exports.renderOperation = require_requestBody.renderOperation;
|
|
418
|
+
exports.renderOperations = require_requestBody.renderOperations;
|
|
419
|
+
exports.renderSchema = require_requestBody.renderSchema;
|
|
420
420
|
exports.schemaKeywords = require_SchemaMapper.schemaKeywords;
|
|
421
421
|
|
|
422
422
|
//# sourceMappingURL=index.cjs.map
|