@kubb/plugin-oas 3.0.0-beta.9 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{OperationGenerator-BjT70q5u.d.cts → OperationGenerator-Bw6sj3Eb.d.cts} +6 -2
- package/dist/{OperationGenerator-BjT70q5u.d.ts → OperationGenerator-Bw6sj3Eb.d.ts} +6 -2
- package/dist/{Schema-BRWI5s-t.d.cts → Schema-4FwWfdim.d.cts} +1 -1
- package/dist/{Schema-do5CU6y2.d.ts → Schema-BlGtSgNB.d.ts} +1 -1
- package/dist/chunk-2TGWPVZN.cjs.map +1 -1
- package/dist/{chunk-AJDXMZ4A.cjs → chunk-A3ROGKLW.cjs} +2 -2
- package/dist/chunk-A3ROGKLW.cjs.map +1 -0
- package/dist/chunk-ABOQ73FL.cjs.map +1 -1
- package/dist/chunk-BG77DP54.js.map +1 -1
- package/dist/chunk-GF26SDHQ.js.map +1 -1
- package/dist/{chunk-IFIW32E5.js → chunk-JA75IPYU.js} +2 -2
- package/dist/chunk-JA75IPYU.js.map +1 -0
- package/dist/chunk-QAFBZLJA.cjs.map +1 -1
- package/dist/chunk-TNWNNVQW.js.map +1 -1
- package/dist/chunk-XNCEFOE6.js.map +1 -1
- package/dist/chunk-ZWHQ54JM.cjs.map +1 -1
- package/dist/components.d.cts +2 -2
- package/dist/components.d.ts +2 -2
- package/dist/generators.d.cts +1 -1
- package/dist/generators.d.ts +1 -1
- package/dist/hooks.cjs +5 -5
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.cts +2 -2
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.js +4 -4
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +10 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +2 -2
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js.map +1 -1
- package/package.json +9 -9
- package/src/SchemaMapper.ts +6 -0
- package/src/hooks/useSchemaManager.ts +1 -1
- package/src/index.ts +1 -0
- package/src/plugin.ts +6 -2
- package/src/types.ts +0 -1
- package/dist/chunk-AJDXMZ4A.cjs.map +0 -1
- package/dist/chunk-IFIW32E5.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/getSchemas.ts","../src/utils/getSchemaFactory.ts"],"names":[],"mappings":";;;AAUO,SAAS,UAAA,CAAW,EAAE,GAAA,EAAK,WAAa,EAAA,QAAA,GAAW,CAAC,SAAW,EAAA,eAAA,EAAiB,WAAW,CAAA,EAA6D,EAAA;AAC7J,EAAM,MAAA,UAAA,GAAa,GAAI,CAAA,aAAA,EAAgB,CAAA,UAAA
|
|
1
|
+
{"version":3,"sources":["../src/utils/getSchemas.ts","../src/utils/getSchemaFactory.ts"],"names":[],"mappings":";;;AAUO,SAAS,UAAA,CAAW,EAAE,GAAA,EAAK,WAAa,EAAA,QAAA,GAAW,CAAC,SAAW,EAAA,eAAA,EAAiB,WAAW,CAAA,EAA6D,EAAA;AAC7J,EAAM,MAAA,UAAA,GAAa,GAAI,CAAA,aAAA,EAAgB,CAAA,UAAA;AAEvC,EAAA,IAAI,UAAiD,EAAC;AAEtD,EAAI,IAAA,QAAA,CAAS,QAAS,CAAA,SAAS,CAAG,EAAA;AAChC,IAAU,OAAA,GAAA;AAAA,MACR,GAAG,OAAA;AAAA,MACH,GAAK,UAAY,EAAA,OAAA,IAAqD;AAAC,KACzE;AAAA;AAGF,EAAM,MAAA,aAAA,GAAgB,UAAY,EAAA,aAAA,IAAiB,EAAC;AACpD,EAAI,IAAA,QAAA,CAAS,QAAS,CAAA,WAAW,CAAG,EAAA;AAClC,IAAM,MAAA,SAAA,GAAY,UAAY,EAAA,SAAA,IAAa,EAAC;AAE5C,IAAO,MAAA,CAAA,OAAA,CAAQ,SAAS,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,IAAA,EAAM,QAAQ,CAAyC,KAAA;AACzF,MAAA,IAAI,QAAS,CAAA,OAAA,IAAW,CAAC,OAAA,CAAQ,IAAI,CAAG,EAAA;AACtC,QAAA,MAAM,mBAAmB,MAAO,CAAA,IAAA,CAAK,SAAS,OAAO,CAAA,CAAE,CAAC,CAAK,IAAA,kBAAA;AAC7D,QAAA,OAAA,CAAQ,IAAI,CAAI,GAAA,QAAA,CAAS,OAAU,GAAA,WAAA,IAAe,gBAAgB,CAAG,EAAA,MAAA;AAAA;AACvE,KACD,CAAA;AAAA;AAGH,EAAI,IAAA,QAAA,CAAS,QAAS,CAAA,eAAe,CAAG,EAAA;AACtC,IAAO,MAAA,CAAA,OAAA,CAAQ,aAAa,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,IAAA,EAAM,OAAO,CAA4C,KAAA;AAC/F,MAAA,IAAI,OAAQ,CAAA,OAAA,IAAW,CAAC,OAAA,CAAQ,IAAI,CAAG,EAAA;AACrC,QAAA,MAAM,mBAAmB,MAAO,CAAA,IAAA,CAAK,QAAQ,OAAO,CAAA,CAAE,CAAC,CAAK,IAAA,kBAAA;AAC5D,QAAA,OAAA,CAAQ,IAAI,CAAI,GAAA,OAAA,CAAQ,OAAU,GAAA,WAAA,IAAe,gBAAgB,CAAG,EAAA,MAAA;AAAA;AACtE,KACD,CAAA;AAAA;AAGH,EAAO,OAAA,OAAA;AACT;ACrBO,SAAS,iBAAmD,GAA6D,EAAA;AAC9H,EAAA,OAAO,CAAC,MAA0B,KAAA;AAChC,IAAA,MAAM,OAAU,GAAA,qBAAA,CAAsB,GAAI,CAAA,GAAG,IAAI,KAAQ,GAAA,KAAA;AAEzD,IAAO,OAAA;AAAA,MACL,MAAA,EAAQ,GAAI,CAAA,kBAAA,CAAmB,MAAM,CAAA;AAAA,MACrC;AAAA,KACF;AAAA,GACF;AACF","file":"chunk-XNCEFOE6.js","sourcesContent":["import type { Oas, OasTypes, contentType } from '@kubb/oas'\n\ntype Mode = 'schemas' | 'responses' | 'requestBodies'\n\nexport type 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","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 schema?: (TWithRef extends true ? OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject : OpenAPIV3.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.0'\n }\n | {\n schema?: (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\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 schema: oas.dereferenceWithRef(schema),\n version,\n } as SchemaResult<TWithRef>\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Operation.tsx","../src/components/Schema.tsx","../src/components/Oas.tsx"],"names":["createContext","jsx"],"mappings":";;;;;;AAcA,IAAM,gBAAA,GAAmBA,mBAAqC,CAAA,EAAE,CAAA
|
|
1
|
+
{"version":3,"sources":["../src/components/Operation.tsx","../src/components/Schema.tsx","../src/components/Oas.tsx"],"names":["createContext","jsx"],"mappings":";;;;;;AAcA,IAAM,gBAAA,GAAmBA,mBAAqC,CAAA,EAAE,CAAA;AAEzD,SAAS,SAAU,CAAA,EAAE,SAAW,EAAA,QAAA,EAA6B,EAAA;AAClE,EAAO,uBAAAC,cAAA,CAAC,iBAAiB,QAAjB,EAAA,EAA0B,OAAO,EAAE,SAAA,IAAc,QAAS,EAAA,CAAA;AACpE;AAEA,SAAA,CAAU,OAAU,GAAA,gBAAA;ACDpB,IAAM,gBAAgBD,mBAAkC,CAAA;AAAA,EACtD,IAAM,EAAA,SAAA;AAAA,EACN,MAAM;AACR,CAAC,CAAA;AAEM,SAAS,MAAA,CAAO,EAAE,IAAM,EAAA,KAAA,EAAO,OAAO,EAAC,EAAG,UAA6B,EAAA;AAC5E,EAAA,uBAAOC,cAAAA,CAAC,aAAc,CAAA,QAAA,EAAd,EAAuB,KAAA,EAAO,EAAE,IAAA,EAAM,MAAQ,EAAA,KAAA,EAAO,IAAK,EAAA,EAAI,QAAS,EAAA,CAAA;AACjF;AAEA,MAAA,CAAO,OAAU,GAAA,aAAA;ACAjB,IAAM,UAAA,GAAaD,mBAA+B,CAAA,EAAE,CAAA;AAE7C,SAAS,IAAI,EAAE,GAAA,EAAK,QAAU,EAAA,UAAA,EAAY,WAA8B,EAAA;AAC7E,EAAO,uBAAAC,cAAC,CAAA,UAAA,CAAW,QAAX,EAAA,EAAoB,KAAO,EAAA,EAAE,GAAK,EAAA,SAAA,EAAW,UAAW,EAAA,EAAI,QAAS,EAAA,CAAA;AAC/E;AAEA,GAAA,CAAI,OAAU,GAAA,UAAA;AACd,GAAA,CAAI,SAAY,GAAA,SAAA;AAChB,GAAA,CAAI,MAAS,GAAA,MAAA","file":"chunk-ZWHQ54JM.cjs","sourcesContent":["import { createContext } from '@kubb/react'\n\nimport type { Operation as OperationType } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react/types'\n\ntype Props = {\n operation: OperationType\n children?: KubbNode\n}\n\ntype OperationContextProps = {\n operation?: OperationType\n}\n\nconst OperationContext = createContext<OperationContextProps>({})\n\nexport function Operation({ operation, children }: Props): KubbNode {\n return <OperationContext.Provider value={{ operation }}>{children}</OperationContext.Provider>\n}\n\nOperation.Context = OperationContext\n","import { createContext } from '@kubb/react'\n\nimport type { SchemaObject } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { Schema as SchemaType } from '../SchemaMapper.ts'\n\nexport type SchemaContextProps = {\n name: string\n schema?: SchemaObject\n tree: Array<SchemaType>\n}\n\ntype Props = {\n name: string\n value?: SchemaObject\n tree?: Array<SchemaType>\n children?: KubbNode\n}\n\nconst SchemaContext = createContext<SchemaContextProps>({\n name: 'unknown',\n tree: [],\n})\n\nexport function Schema({ name, value, tree = [], children }: Props): KubbNode {\n return <SchemaContext.Provider value={{ name, schema: value, tree }}>{children}</SchemaContext.Provider>\n}\n\nSchema.Context = SchemaContext\n","import { createContext } from '@kubb/react'\n\nimport { Operation } from './Operation.tsx'\nimport { Schema } from './Schema.tsx'\n\nimport type { Oas as OasType, Operation as OperationType } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react/types'\nimport type { OperationGenerator } from '../OperationGenerator.ts'\n\ntype Props = {\n oas: OasType\n operations?: OperationType[]\n /**\n * @deprecated\n */\n generator?: Omit<OperationGenerator, 'build'>\n children?: KubbNode\n}\n\ntype OasContextProps = {\n oas?: OasType\n operations?: OperationType[]\n /**\n * @deprecated\n */\n generator?: Omit<OperationGenerator, 'build'>\n}\n\nconst OasContext = createContext<OasContextProps>({})\n\nexport function Oas({ oas, children, operations, generator }: Props): KubbNode {\n return <OasContext.Provider value={{ oas, generator, operations }}>{children}</OasContext.Provider>\n}\n\nOas.Context = OasContext\nOas.Operation = Operation\nOas.Schema = Schema\n"]}
|
package/dist/components.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { S as Schema } from './Schema-
|
|
1
|
+
import { S as Schema } from './Schema-4FwWfdim.cjs';
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import { Operation as Operation$1, Oas as Oas$1 } from '@kubb/oas';
|
|
4
4
|
import { KubbNode } from '@kubb/react/types';
|
|
5
|
-
import { b as OperationGenerator } from './OperationGenerator-
|
|
5
|
+
import { b as OperationGenerator } from './OperationGenerator-Bw6sj3Eb.cjs';
|
|
6
6
|
import '@kubb/core';
|
|
7
7
|
import '@kubb/fs/types';
|
|
8
8
|
|
package/dist/components.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { S as Schema } from './Schema-
|
|
1
|
+
import { S as Schema } from './Schema-BlGtSgNB.js';
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import { Operation as Operation$1, Oas as Oas$1 } from '@kubb/oas';
|
|
4
4
|
import { KubbNode } from '@kubb/react/types';
|
|
5
|
-
import { b as OperationGenerator } from './OperationGenerator-
|
|
5
|
+
import { b as OperationGenerator } from './OperationGenerator-Bw6sj3Eb.js';
|
|
6
6
|
import '@kubb/core';
|
|
7
7
|
import '@kubb/fs/types';
|
|
8
8
|
|
package/dist/generators.d.cts
CHANGED
package/dist/generators.d.ts
CHANGED
package/dist/hooks.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkA3ROGKLW_cjs = require('./chunk-A3ROGKLW.cjs');
|
|
4
4
|
require('./chunk-QAFBZLJA.cjs');
|
|
5
5
|
var chunkZWHQ54JM_cjs = require('./chunk-ZWHQ54JM.cjs');
|
|
6
6
|
var react = require('@kubb/react');
|
|
@@ -143,7 +143,7 @@ function useSchema() {
|
|
|
143
143
|
return props;
|
|
144
144
|
}
|
|
145
145
|
function useSchemaManager() {
|
|
146
|
-
const {
|
|
146
|
+
const { plugin, pluginManager } = react.useApp();
|
|
147
147
|
const getName = (name, { pluginKey = plugin.key, type }) => {
|
|
148
148
|
return pluginManager.resolveName({
|
|
149
149
|
name,
|
|
@@ -151,8 +151,8 @@ function useSchemaManager() {
|
|
|
151
151
|
type
|
|
152
152
|
});
|
|
153
153
|
};
|
|
154
|
-
const getFile = (name, { mode
|
|
155
|
-
const resolvedName =
|
|
154
|
+
const getFile = (name, { mode = "split", pluginKey = plugin.key, extname = ".ts", tag } = {}) => {
|
|
155
|
+
const resolvedName = mode === "single" ? "" : getName(name, { type: "file", pluginKey });
|
|
156
156
|
const file = pluginManager.getFile({
|
|
157
157
|
name: resolvedName,
|
|
158
158
|
extname,
|
|
@@ -169,7 +169,7 @@ function useSchemaManager() {
|
|
|
169
169
|
};
|
|
170
170
|
};
|
|
171
171
|
const getImports = (tree) => {
|
|
172
|
-
const refs =
|
|
172
|
+
const refs = chunkA3ROGKLW_cjs.SchemaGenerator.deepSearch(tree, chunkA3ROGKLW_cjs.schemaKeywords.ref);
|
|
173
173
|
return refs?.map((item, i) => {
|
|
174
174
|
if (!item.args.path || !item.args.isImportable) {
|
|
175
175
|
return void 0;
|
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","mode","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'\nimport type * as KubbFile from '@kubb/fs/types'\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 tag?: string\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 tag?: string\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}\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 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 //TODO replace tag with group\n const getFile: UseOperationManagerResult['getFile'] = (\n operation,\n { prefix, suffix, pluginKey = plugin.key, tag = operation.getTags().at(0)?.name, extname = '.ts' } = {},\n ) => {\n const name = getName(operation, { type: 'file', pluginKey, prefix, suffix })\n const file = pluginManager.getFile({\n name,\n extname,\n pluginKey,\n options: { type: 'file', pluginKey, tag },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name,\n pluginKey,\n tag,\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 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 [schemas.response.statusCode || 'default']: pluginManager.resolveName({\n name: schemas.response.name,\n pluginKey,\n type,\n }),\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 }\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 * as KubbFile from '@kubb/fs/types'\nimport type { Mode } from '@kubb/fs/types'\nimport { SchemaGenerator } from '../SchemaGenerator.ts'\nimport { type Schema, schemaKeywords } from '../SchemaMapper'\n\ntype FileMeta = FileMetaBase & {\n pluginKey: Plugin['key']\n name: string\n tag?: string\n}\n\ntype UseSchemaManagerResult = {\n getName: (name: string, params: { pluginKey?: Plugin['key']; type: ResolveNameParams['type'] }) => string\n getFile: (name: string, params?: { pluginKey?: Plugin['key']; mode?: Mode; extname?: KubbFile.Extname; tag?: string }) => 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 { mode, plugin, pluginManager, fileManager } = 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 //TODO replace tag with group\n const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginKey = plugin.key, extname = '.ts', tag } = {}) => {\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, tag },\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, i) => {\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,"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'\nimport type * as KubbFile from '@kubb/fs/types'\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 tag?: string\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 tag?: string\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}\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 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 //TODO replace tag with group\n const getFile: UseOperationManagerResult['getFile'] = (\n operation,\n { prefix, suffix, pluginKey = plugin.key, tag = operation.getTags().at(0)?.name, extname = '.ts' } = {},\n ) => {\n const name = getName(operation, { type: 'file', pluginKey, prefix, suffix })\n const file = pluginManager.getFile({\n name,\n extname,\n pluginKey,\n options: { type: 'file', pluginKey, tag },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name,\n pluginKey,\n tag,\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 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 [schemas.response.statusCode || 'default']: pluginManager.resolveName({\n name: schemas.response.name,\n pluginKey,\n type,\n }),\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 }\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 * as KubbFile from '@kubb/fs/types'\nimport type { Mode } from '@kubb/fs/types'\nimport { SchemaGenerator } from '../SchemaGenerator.ts'\nimport { type Schema, schemaKeywords } from '../SchemaMapper'\n\ntype FileMeta = FileMetaBase & {\n pluginKey: Plugin['key']\n name: string\n tag?: string\n}\n\ntype UseSchemaManagerResult = {\n getName: (name: string, params: { pluginKey?: Plugin['key']; type: ResolveNameParams['type'] }) => string\n getFile: (name: string, params?: { pluginKey?: Plugin['key']; mode?: Mode; extname?: KubbFile.Extname; tag?: string }) => 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 //TODO replace tag with group\n const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginKey = plugin.key, extname = '.ts', tag } = {}) => {\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, tag },\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, i) => {\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"]}
|
package/dist/hooks.d.cts
CHANGED
|
@@ -2,8 +2,8 @@ import { Oas, Operation, HttpMethod } from '@kubb/oas';
|
|
|
2
2
|
import { Plugin, ResolveNameParams, FileMetaBase } from '@kubb/core';
|
|
3
3
|
import * as KubbFile from '@kubb/fs/types';
|
|
4
4
|
import { Mode } from '@kubb/fs/types';
|
|
5
|
-
import {
|
|
6
|
-
import { a as SchemaContextProps } from './Schema-
|
|
5
|
+
import { w as OperationSchemas, f as Schema } from './OperationGenerator-Bw6sj3Eb.cjs';
|
|
6
|
+
import { a as SchemaContextProps } from './Schema-4FwWfdim.cjs';
|
|
7
7
|
import '@kubb/react/types';
|
|
8
8
|
import 'react';
|
|
9
9
|
|
package/dist/hooks.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import { Oas, Operation, HttpMethod } from '@kubb/oas';
|
|
|
2
2
|
import { Plugin, ResolveNameParams, FileMetaBase } from '@kubb/core';
|
|
3
3
|
import * as KubbFile from '@kubb/fs/types';
|
|
4
4
|
import { Mode } from '@kubb/fs/types';
|
|
5
|
-
import {
|
|
6
|
-
import { a as SchemaContextProps } from './Schema-
|
|
5
|
+
import { w as OperationSchemas, f as Schema } from './OperationGenerator-Bw6sj3Eb.js';
|
|
6
|
+
import { a as SchemaContextProps } from './Schema-BlGtSgNB.js';
|
|
7
7
|
import '@kubb/react/types';
|
|
8
8
|
import 'react';
|
|
9
9
|
|
package/dist/hooks.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SchemaGenerator, schemaKeywords } from './chunk-
|
|
1
|
+
import { SchemaGenerator, schemaKeywords } from './chunk-JA75IPYU.js';
|
|
2
2
|
import './chunk-XNCEFOE6.js';
|
|
3
3
|
import { Oas, Operation, Schema } from './chunk-GF26SDHQ.js';
|
|
4
4
|
import { useContext, useApp } from '@kubb/react';
|
|
@@ -141,7 +141,7 @@ function useSchema() {
|
|
|
141
141
|
return props;
|
|
142
142
|
}
|
|
143
143
|
function useSchemaManager() {
|
|
144
|
-
const {
|
|
144
|
+
const { plugin, pluginManager } = useApp();
|
|
145
145
|
const getName = (name, { pluginKey = plugin.key, type }) => {
|
|
146
146
|
return pluginManager.resolveName({
|
|
147
147
|
name,
|
|
@@ -149,8 +149,8 @@ function useSchemaManager() {
|
|
|
149
149
|
type
|
|
150
150
|
});
|
|
151
151
|
};
|
|
152
|
-
const getFile = (name, { mode
|
|
153
|
-
const resolvedName =
|
|
152
|
+
const getFile = (name, { mode = "split", pluginKey = plugin.key, extname = ".ts", tag } = {}) => {
|
|
153
|
+
const resolvedName = mode === "single" ? "" : getName(name, { type: "file", pluginKey });
|
|
154
154
|
const file = pluginManager.getFile({
|
|
155
155
|
name: resolvedName,
|
|
156
156
|
extname,
|
package/dist/hooks.js.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","useApp","mode"],"mappings":"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","file":"hooks.js","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'\nimport type * as KubbFile from '@kubb/fs/types'\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 tag?: string\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 tag?: string\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}\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 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 //TODO replace tag with group\n const getFile: UseOperationManagerResult['getFile'] = (\n operation,\n { prefix, suffix, pluginKey = plugin.key, tag = operation.getTags().at(0)?.name, extname = '.ts' } = {},\n ) => {\n const name = getName(operation, { type: 'file', pluginKey, prefix, suffix })\n const file = pluginManager.getFile({\n name,\n extname,\n pluginKey,\n options: { type: 'file', pluginKey, tag },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name,\n pluginKey,\n tag,\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 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 [schemas.response.statusCode || 'default']: pluginManager.resolveName({\n name: schemas.response.name,\n pluginKey,\n type,\n }),\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 }\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 * as KubbFile from '@kubb/fs/types'\nimport type { Mode } from '@kubb/fs/types'\nimport { SchemaGenerator } from '../SchemaGenerator.ts'\nimport { type Schema, schemaKeywords } from '../SchemaMapper'\n\ntype FileMeta = FileMetaBase & {\n pluginKey: Plugin['key']\n name: string\n tag?: string\n}\n\ntype UseSchemaManagerResult = {\n getName: (name: string, params: { pluginKey?: Plugin['key']; type: ResolveNameParams['type'] }) => string\n getFile: (name: string, params?: { pluginKey?: Plugin['key']; mode?: Mode; extname?: KubbFile.Extname; tag?: string }) => 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 { mode, plugin, pluginManager, fileManager } = 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 //TODO replace tag with group\n const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginKey = plugin.key, extname = '.ts', tag } = {}) => {\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, tag },\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, i) => {\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,"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","useApp"],"mappings":"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","file":"hooks.js","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'\nimport type * as KubbFile from '@kubb/fs/types'\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 tag?: string\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 tag?: string\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}\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 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 //TODO replace tag with group\n const getFile: UseOperationManagerResult['getFile'] = (\n operation,\n { prefix, suffix, pluginKey = plugin.key, tag = operation.getTags().at(0)?.name, extname = '.ts' } = {},\n ) => {\n const name = getName(operation, { type: 'file', pluginKey, prefix, suffix })\n const file = pluginManager.getFile({\n name,\n extname,\n pluginKey,\n options: { type: 'file', pluginKey, tag },\n })\n\n return {\n ...file,\n meta: {\n ...file.meta,\n name,\n pluginKey,\n tag,\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 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 [schemas.response.statusCode || 'default']: pluginManager.resolveName({\n name: schemas.response.name,\n pluginKey,\n type,\n }),\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 }\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 * as KubbFile from '@kubb/fs/types'\nimport type { Mode } from '@kubb/fs/types'\nimport { SchemaGenerator } from '../SchemaGenerator.ts'\nimport { type Schema, schemaKeywords } from '../SchemaMapper'\n\ntype FileMeta = FileMetaBase & {\n pluginKey: Plugin['key']\n name: string\n tag?: string\n}\n\ntype UseSchemaManagerResult = {\n getName: (name: string, params: { pluginKey?: Plugin['key']; type: ResolveNameParams['type'] }) => string\n getFile: (name: string, params?: { pluginKey?: Plugin['key']; mode?: Mode; extname?: KubbFile.Extname; tag?: string }) => 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 //TODO replace tag with group\n const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginKey = plugin.key, extname = '.ts', tag } = {}) => {\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, tag },\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, i) => {\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"]}
|
package/dist/index.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var chunkABOQ73FL_cjs = require('./chunk-ABOQ73FL.cjs');
|
|
4
4
|
var chunk2TGWPVZN_cjs = require('./chunk-2TGWPVZN.cjs');
|
|
5
5
|
require('./chunk-PADR76WZ.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunkA3ROGKLW_cjs = require('./chunk-A3ROGKLW.cjs');
|
|
7
7
|
var chunkQAFBZLJA_cjs = require('./chunk-QAFBZLJA.cjs');
|
|
8
8
|
require('./chunk-ZWHQ54JM.cjs');
|
|
9
9
|
var core = require('@kubb/core');
|
|
@@ -291,7 +291,7 @@ var pluginOas = core.createPlugin((options) => {
|
|
|
291
291
|
},
|
|
292
292
|
validate = true,
|
|
293
293
|
generators = [chunk2TGWPVZN_cjs.jsonGenerator],
|
|
294
|
-
serverIndex
|
|
294
|
+
serverIndex,
|
|
295
295
|
contentType,
|
|
296
296
|
oasClass
|
|
297
297
|
} = options;
|
|
@@ -326,7 +326,10 @@ var pluginOas = core.createPlugin((options) => {
|
|
|
326
326
|
},
|
|
327
327
|
async getBaseURL() {
|
|
328
328
|
const oasInstance = await this.getOas();
|
|
329
|
-
|
|
329
|
+
if (serverIndex) {
|
|
330
|
+
return oasInstance.api.servers?.at(serverIndex)?.url;
|
|
331
|
+
}
|
|
332
|
+
return void 0;
|
|
330
333
|
},
|
|
331
334
|
contentType
|
|
332
335
|
};
|
|
@@ -348,7 +351,7 @@ var pluginOas = core.createPlugin((options) => {
|
|
|
348
351
|
logger: this.logger
|
|
349
352
|
});
|
|
350
353
|
await oas.dereference();
|
|
351
|
-
const schemaGenerator = new
|
|
354
|
+
const schemaGenerator = new chunkA3ROGKLW_cjs.SchemaGenerator(
|
|
352
355
|
{
|
|
353
356
|
unknownType: "unknown",
|
|
354
357
|
dateType: "date",
|
|
@@ -394,15 +397,15 @@ Object.defineProperty(exports, "createReactGenerator", {
|
|
|
394
397
|
});
|
|
395
398
|
Object.defineProperty(exports, "SchemaGenerator", {
|
|
396
399
|
enumerable: true,
|
|
397
|
-
get: function () { return
|
|
400
|
+
get: function () { return chunkA3ROGKLW_cjs.SchemaGenerator; }
|
|
398
401
|
});
|
|
399
402
|
Object.defineProperty(exports, "isKeyword", {
|
|
400
403
|
enumerable: true,
|
|
401
|
-
get: function () { return
|
|
404
|
+
get: function () { return chunkA3ROGKLW_cjs.isKeyword; }
|
|
402
405
|
});
|
|
403
406
|
Object.defineProperty(exports, "schemaKeywords", {
|
|
404
407
|
enumerable: true,
|
|
405
|
-
get: function () { return
|
|
408
|
+
get: function () { return chunkA3ROGKLW_cjs.schemaKeywords; }
|
|
406
409
|
});
|
|
407
410
|
exports.OperationGenerator = OperationGenerator;
|
|
408
411
|
exports.pluginOas = pluginOas;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/OperationGenerator.ts","../src/plugin.ts"],"names":["BaseGenerator","transformers","path","method","methods","item","createPlugin","jsonGenerator","parseFromConfig","getSchemas","options","FileManager","SchemaGenerator"],"mappings":"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","file":"index.cjs","sourcesContent":["import { BaseGenerator, type FileMetaBase } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\n\nimport type { PluginFactoryOptions, PluginManager } from '@kubb/core'\nimport type * as KubbFile from '@kubb/fs/types'\n\nimport type { Plugin } from '@kubb/core'\nimport type { HttpMethod, Oas, OasTypes, Operation, SchemaObject, contentType } from '@kubb/oas'\nimport type { Generator } from './generator.tsx'\nimport type { Exclude, Include, OperationSchemas, OperationsByMethod, Override } from './types.ts'\n\nexport type OperationMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>\n\ntype Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {\n oas: Oas\n exclude: Array<Exclude> | undefined\n include: Array<Include> | undefined\n override: Array<Override<TOptions>> | undefined\n contentType: contentType | undefined\n pluginManager: PluginManager\n /**\n * Current plugin\n */\n plugin: Plugin<TPluginOptions>\n mode: KubbFile.Mode\n}\n\nexport class OperationGenerator<\n TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions,\n TFileMeta extends FileMetaBase = FileMetaBase,\n> extends BaseGenerator<TPluginOptions['resolvedOptions'], Context<TPluginOptions['resolvedOptions'], TPluginOptions>> {\n #operationsByMethod: OperationsByMethod = {}\n get operationsByMethod(): OperationsByMethod {\n return this.#operationsByMethod\n }\n\n set operationsByMethod(paths: OperationsByMethod) {\n this.#operationsByMethod = paths\n }\n\n #getOptions(operation: Operation, method: HttpMethod): Partial<TPluginOptions['resolvedOptions']> {\n const { override = [] } = this.context\n\n return (\n override.find(({ pattern, type }) => {\n if (type === 'tag') {\n return !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId') {\n return !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path') {\n return !!operation.path.match(pattern)\n }\n\n if (type === 'method') {\n return !!method.match(pattern)\n }\n\n return false\n })?.options || {}\n )\n }\n\n #isExcluded(operation: Operation, method: HttpMethod): boolean {\n const { exclude = [] } = this.context\n let matched = false\n\n exclude.forEach(({ pattern, type }) => {\n if (type === 'tag' && !matched) {\n matched = !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId' && !matched) {\n matched = !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path' && !matched) {\n matched = !!operation.path.match(pattern)\n }\n\n if (type === 'method' && !matched) {\n matched = !!method.match(pattern)\n }\n })\n\n return matched\n }\n\n #isIncluded(operation: Operation, method: HttpMethod): boolean {\n const { include = [] } = this.context\n let matched = false\n\n include.forEach(({ pattern, type }) => {\n if (type === 'tag' && !matched) {\n matched = !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId' && !matched) {\n matched = !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path' && !matched) {\n matched = !!operation.path.match(pattern)\n }\n\n if (type === 'method' && !matched) {\n matched = !!method.match(pattern)\n }\n })\n\n return matched\n }\n\n getSchemas(\n operation: Operation,\n {\n resolveName = (name) => name,\n }: {\n resolveName?: (name: string) => string\n } = {},\n ): OperationSchemas {\n const pathParamsSchema = this.context.oas.getParametersSchema(operation, 'path')\n const queryParamsSchema = this.context.oas.getParametersSchema(operation, 'query')\n const headerParamsSchema = this.context.oas.getParametersSchema(operation, 'header')\n const requestSchema = this.context.oas.getRequestSchema(operation)\n const statusCodes = operation.getResponseStatusCodes().map((statusCode) => {\n let name = statusCode\n if (name === 'default') {\n name = 'error'\n }\n\n const schema = this.context.oas.getResponseSchema(operation, statusCode)\n\n return {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${name}`)),\n description: (operation.getResponseByStatusCode(statusCode) as OasTypes.ResponseObject)?.description,\n schema,\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n statusCode: name === 'error' ? undefined : Number(statusCode),\n keys: schema?.properties ? Object.keys(schema.properties) : undefined,\n keysToOmit: schema?.properties\n ? Object.keys(schema.properties).filter((key) => {\n const item = schema.properties?.[key] as OasTypes.SchemaObject\n return item?.writeOnly\n })\n : undefined,\n }\n })\n const hasResponses = statusCodes.some((item) => item.statusCode?.toString().startsWith('2'))\n\n return {\n pathParams: pathParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} PathParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: pathParamsSchema,\n keys: pathParamsSchema.properties ? Object.keys(pathParamsSchema.properties) : undefined,\n }\n : undefined,\n queryParams: queryParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} QueryParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: queryParamsSchema,\n keys: queryParamsSchema.properties ? Object.keys(queryParamsSchema.properties) : [],\n }\n : undefined,\n headerParams: headerParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} HeaderParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: headerParamsSchema,\n keys: headerParamsSchema.properties ? Object.keys(headerParamsSchema.properties) : undefined,\n }\n : undefined,\n request: requestSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${operation.method === 'get' ? 'queryRequest' : 'mutationRequest'}`)),\n description: (operation.schema.requestBody as OasTypes.RequestBodyObject)?.description,\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: requestSchema,\n keys: requestSchema.properties ? Object.keys(requestSchema.properties) : undefined,\n keysToOmit: requestSchema.properties\n ? Object.keys(requestSchema.properties).filter((key) => {\n const item = requestSchema.properties?.[key] as OasTypes.SchemaObject\n\n return item?.readOnly\n })\n : undefined,\n }\n : undefined,\n response: {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${operation.method === 'get' ? 'queryResponse' : 'mutationResponse'}`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: {\n oneOf: hasResponses\n ? statusCodes\n .filter((item) => item.statusCode?.toString().startsWith('2'))\n .map((item) => {\n return {\n ...item.schema,\n $ref: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${item.statusCode}`)),\n }\n })\n : undefined,\n } as SchemaObject,\n },\n responses: statusCodes.filter((item) => item.statusCode?.toString().startsWith('2')),\n errors: statusCodes.filter((item) => item.statusCode?.toString().startsWith('4') || item.statusCode?.toString().startsWith('5')),\n statusCodes,\n }\n }\n\n #methods = ['get', 'post', 'patch', 'put', 'delete']\n\n async build(...generators: Array<Generator<TPluginOptions>>): Promise<Array<KubbFile.File<TFileMeta>>> {\n const { oas } = this.context\n\n const paths = oas.getPaths()\n this.operationsByMethod = Object.entries(paths).reduce((acc, [path, method]) => {\n const methods = Object.keys(method) as HttpMethod[]\n\n methods.forEach((method) => {\n const operation = oas.operation(path, method)\n if (operation && [this.#methods].some((methods) => method === operation.method)) {\n const isExcluded = this.#isExcluded(operation, method)\n const isIncluded = this.context.include ? this.#isIncluded(operation, method) : true\n\n if (isIncluded && !isExcluded) {\n if (!acc[path]) {\n acc[path] = {} as OperationsByMethod['get']\n }\n acc[path] = {\n ...acc[path],\n [method]: {\n operation,\n schemas: this.getSchemas(operation),\n },\n } as OperationsByMethod['get']\n }\n }\n })\n\n return acc\n }, {} as OperationsByMethod)\n\n const promises = Object.keys(this.operationsByMethod).reduce((acc, path) => {\n const methods = this.operationsByMethod[path] ? (Object.keys(this.operationsByMethod[path]!) as HttpMethod[]) : []\n\n methods.forEach((method) => {\n const { operation } = this.operationsByMethod[path]?.[method]!\n const options = this.#getOptions(operation, method)\n\n const methodToCall = this[method as keyof typeof this] as any\n\n if (typeof methodToCall === 'function') {\n const promiseMethod = methodToCall?.call(this, operation, {\n ...this.options,\n ...options,\n })\n\n if (promiseMethod) {\n acc.push(promiseMethod)\n }\n }\n\n const promiseOperation = this.operation.call(this, operation, {\n ...this.options,\n ...options,\n })\n\n if (promiseOperation) {\n acc.push(promiseOperation)\n }\n\n generators?.forEach((generator) => {\n const promise = generator.operation?.({\n instance: this,\n operation,\n options: {\n ...this.options,\n ...options,\n },\n } as any) as Promise<Array<KubbFile.File<TFileMeta>>>\n\n if (promise) {\n acc.push(promise)\n }\n })\n })\n\n return acc\n }, [] as OperationMethodResult<TFileMeta>[])\n\n const operations = Object.values(this.operationsByMethod).map((item) => Object.values(item).map((item) => item.operation))\n\n promises.push(this.all(operations.flat().filter(Boolean), this.operationsByMethod))\n\n generators?.forEach((generator) => {\n const promise = generator.operations?.({\n instance: this,\n operations: operations.flat().filter(Boolean),\n operationsByMethod: this.operationsByMethod,\n options: this.options,\n } as any) as Promise<Array<KubbFile.File<TFileMeta>>>\n\n if (promise) {\n promises.push(promise)\n }\n })\n\n const files = await Promise.all(promises)\n\n // using .flat because operationGenerator[method] can return a array of files or just one file\n return files.flat().filter(Boolean)\n }\n\n /**\n * Operation\n */\n async operation(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n\n /**\n * GET\n */\n async get(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n\n /**\n * POST\n */\n async post(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n /**\n * PATCH\n */\n async patch(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n\n /**\n * PUT\n */\n async put(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n\n /**\n * DELETE\n */\n async delete(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n\n /**\n * Combination of GET, POST, PATCH, PUT, DELETE\n */\n async all(operations: Operation[], paths: OperationsByMethod): OperationMethodResult<TFileMeta> {\n return []\n }\n}\n","import { FileManager, createPlugin } from '@kubb/core'\n\nimport { getSchemas } from './utils/getSchemas.ts'\nimport { parseFromConfig } from './utils/parseFromConfig.ts'\n\nimport path from 'node:path'\nimport type { Config } from '@kubb/core'\nimport type { Logger } from '@kubb/core/logger'\nimport type { Oas } from '@kubb/oas'\nimport { OperationGenerator } from './OperationGenerator.ts'\nimport { SchemaGenerator } from './SchemaGenerator.ts'\nimport { jsonGenerator } from './generators'\nimport type { PluginOas } from './types.ts'\n\nexport const pluginOasName = 'plugin-oas' satisfies PluginOas['name']\n\nexport const pluginOas = createPlugin<PluginOas>((options) => {\n const {\n output = {\n path: 'schemas',\n },\n validate = true,\n generators = [jsonGenerator],\n serverIndex = 0,\n contentType,\n oasClass,\n } = options\n\n const getOas = async ({ config, logger }: { config: Config; logger: Logger }): Promise<Oas> => {\n try {\n // needs to be in a different variable or the catch here will not work(return of a promise instead)\n const oas = await parseFromConfig(config, oasClass)\n\n if (validate) {\n await oas.valdiate()\n }\n\n return oas\n } catch (e) {\n const error = e as Error\n\n logger.emit('warning', error?.message)\n return parseFromConfig(config, oasClass)\n }\n }\n\n return {\n name: pluginOasName,\n options: {\n output,\n ...options,\n },\n context() {\n const { config, logger } = this\n\n return {\n getOas() {\n return getOas({ config, logger })\n },\n async getSchemas({ includes } = {}) {\n const oas = await this.getOas()\n return getSchemas({ oas, contentType, includes })\n },\n async getBaseURL() {\n const oasInstance = await this.getOas()\n return oasInstance.api.servers?.at(serverIndex)?.url\n },\n contentType,\n }\n },\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n return path.resolve(root, output.path, baseName)\n },\n async buildStart() {\n if (!output) {\n return\n }\n\n const oas = await getOas({\n config: this.config,\n logger: this.logger,\n })\n await oas.dereference()\n\n const schemaGenerator = new SchemaGenerator(\n {\n unknownType: 'unknown',\n dateType: 'date',\n transformers: {},\n ...this.plugin.options,\n },\n {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override: undefined,\n mode: 'split',\n output: output.path,\n },\n )\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n exclude: undefined,\n include: undefined,\n override: undefined,\n mode: 'split',\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n\n await this.addFile(...operationFiles)\n },\n }\n})\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/OperationGenerator.ts","../src/plugin.ts"],"names":["BaseGenerator","transformers","path","method","methods","item","createPlugin","jsonGenerator","parseFromConfig","getSchemas","options","FileManager","SchemaGenerator"],"mappings":"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","file":"index.cjs","sourcesContent":["import { BaseGenerator, type FileMetaBase } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\n\nimport type { PluginFactoryOptions, PluginManager } from '@kubb/core'\nimport type * as KubbFile from '@kubb/fs/types'\n\nimport type { Plugin } from '@kubb/core'\nimport type { HttpMethod, Oas, OasTypes, Operation, SchemaObject, contentType } from '@kubb/oas'\nimport type { Generator } from './generator.tsx'\nimport type { Exclude, Include, OperationSchemas, OperationsByMethod, Override } from './types.ts'\n\nexport type OperationMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>\n\ntype Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {\n oas: Oas\n exclude: Array<Exclude> | undefined\n include: Array<Include> | undefined\n override: Array<Override<TOptions>> | undefined\n contentType: contentType | undefined\n pluginManager: PluginManager\n /**\n * Current plugin\n */\n plugin: Plugin<TPluginOptions>\n mode: KubbFile.Mode\n}\n\nexport class OperationGenerator<\n TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions,\n TFileMeta extends FileMetaBase = FileMetaBase,\n> extends BaseGenerator<TPluginOptions['resolvedOptions'], Context<TPluginOptions['resolvedOptions'], TPluginOptions>> {\n #operationsByMethod: OperationsByMethod = {}\n get operationsByMethod(): OperationsByMethod {\n return this.#operationsByMethod\n }\n\n set operationsByMethod(paths: OperationsByMethod) {\n this.#operationsByMethod = paths\n }\n\n #getOptions(operation: Operation, method: HttpMethod): Partial<TPluginOptions['resolvedOptions']> {\n const { override = [] } = this.context\n\n return (\n override.find(({ pattern, type }) => {\n if (type === 'tag') {\n return !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId') {\n return !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path') {\n return !!operation.path.match(pattern)\n }\n\n if (type === 'method') {\n return !!method.match(pattern)\n }\n\n return false\n })?.options || {}\n )\n }\n\n #isExcluded(operation: Operation, method: HttpMethod): boolean {\n const { exclude = [] } = this.context\n let matched = false\n\n exclude.forEach(({ pattern, type }) => {\n if (type === 'tag' && !matched) {\n matched = !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId' && !matched) {\n matched = !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path' && !matched) {\n matched = !!operation.path.match(pattern)\n }\n\n if (type === 'method' && !matched) {\n matched = !!method.match(pattern)\n }\n })\n\n return matched\n }\n\n #isIncluded(operation: Operation, method: HttpMethod): boolean {\n const { include = [] } = this.context\n let matched = false\n\n include.forEach(({ pattern, type }) => {\n if (type === 'tag' && !matched) {\n matched = !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId' && !matched) {\n matched = !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path' && !matched) {\n matched = !!operation.path.match(pattern)\n }\n\n if (type === 'method' && !matched) {\n matched = !!method.match(pattern)\n }\n })\n\n return matched\n }\n\n getSchemas(\n operation: Operation,\n {\n resolveName = (name) => name,\n }: {\n resolveName?: (name: string) => string\n } = {},\n ): OperationSchemas {\n const pathParamsSchema = this.context.oas.getParametersSchema(operation, 'path')\n const queryParamsSchema = this.context.oas.getParametersSchema(operation, 'query')\n const headerParamsSchema = this.context.oas.getParametersSchema(operation, 'header')\n const requestSchema = this.context.oas.getRequestSchema(operation)\n const statusCodes = operation.getResponseStatusCodes().map((statusCode) => {\n let name = statusCode\n if (name === 'default') {\n name = 'error'\n }\n\n const schema = this.context.oas.getResponseSchema(operation, statusCode)\n\n return {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${name}`)),\n description: (operation.getResponseByStatusCode(statusCode) as OasTypes.ResponseObject)?.description,\n schema,\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n statusCode: name === 'error' ? undefined : Number(statusCode),\n keys: schema?.properties ? Object.keys(schema.properties) : undefined,\n keysToOmit: schema?.properties\n ? Object.keys(schema.properties).filter((key) => {\n const item = schema.properties?.[key] as OasTypes.SchemaObject\n return item?.writeOnly\n })\n : undefined,\n }\n })\n const hasResponses = statusCodes.some((item) => item.statusCode?.toString().startsWith('2'))\n\n return {\n pathParams: pathParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} PathParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: pathParamsSchema,\n keys: pathParamsSchema.properties ? Object.keys(pathParamsSchema.properties) : undefined,\n }\n : undefined,\n queryParams: queryParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} QueryParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: queryParamsSchema,\n keys: queryParamsSchema.properties ? Object.keys(queryParamsSchema.properties) : [],\n }\n : undefined,\n headerParams: headerParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} HeaderParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: headerParamsSchema,\n keys: headerParamsSchema.properties ? Object.keys(headerParamsSchema.properties) : undefined,\n }\n : undefined,\n request: requestSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${operation.method === 'get' ? 'queryRequest' : 'mutationRequest'}`)),\n description: (operation.schema.requestBody as OasTypes.RequestBodyObject)?.description,\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: requestSchema,\n keys: requestSchema.properties ? Object.keys(requestSchema.properties) : undefined,\n keysToOmit: requestSchema.properties\n ? Object.keys(requestSchema.properties).filter((key) => {\n const item = requestSchema.properties?.[key] as OasTypes.SchemaObject\n\n return item?.readOnly\n })\n : undefined,\n }\n : undefined,\n response: {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${operation.method === 'get' ? 'queryResponse' : 'mutationResponse'}`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: {\n oneOf: hasResponses\n ? statusCodes\n .filter((item) => item.statusCode?.toString().startsWith('2'))\n .map((item) => {\n return {\n ...item.schema,\n $ref: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${item.statusCode}`)),\n }\n })\n : undefined,\n } as SchemaObject,\n },\n responses: statusCodes.filter((item) => item.statusCode?.toString().startsWith('2')),\n errors: statusCodes.filter((item) => item.statusCode?.toString().startsWith('4') || item.statusCode?.toString().startsWith('5')),\n statusCodes,\n }\n }\n\n #methods = ['get', 'post', 'patch', 'put', 'delete']\n\n async build(...generators: Array<Generator<TPluginOptions>>): Promise<Array<KubbFile.File<TFileMeta>>> {\n const { oas } = this.context\n\n const paths = oas.getPaths()\n this.operationsByMethod = Object.entries(paths).reduce((acc, [path, method]) => {\n const methods = Object.keys(method) as HttpMethod[]\n\n methods.forEach((method) => {\n const operation = oas.operation(path, method)\n if (operation && [this.#methods].some((methods) => method === operation.method)) {\n const isExcluded = this.#isExcluded(operation, method)\n const isIncluded = this.context.include ? this.#isIncluded(operation, method) : true\n\n if (isIncluded && !isExcluded) {\n if (!acc[path]) {\n acc[path] = {} as OperationsByMethod['get']\n }\n acc[path] = {\n ...acc[path],\n [method]: {\n operation,\n schemas: this.getSchemas(operation),\n },\n } as OperationsByMethod['get']\n }\n }\n })\n\n return acc\n }, {} as OperationsByMethod)\n\n const promises = Object.keys(this.operationsByMethod).reduce((acc, path) => {\n const methods = this.operationsByMethod[path] ? (Object.keys(this.operationsByMethod[path]!) as HttpMethod[]) : []\n\n methods.forEach((method) => {\n const { operation } = this.operationsByMethod[path]?.[method]!\n const options = this.#getOptions(operation, method)\n\n const methodToCall = this[method as keyof typeof this] as any\n\n if (typeof methodToCall === 'function') {\n const promiseMethod = methodToCall?.call(this, operation, {\n ...this.options,\n ...options,\n })\n\n if (promiseMethod) {\n acc.push(promiseMethod)\n }\n }\n\n const promiseOperation = this.operation.call(this, operation, {\n ...this.options,\n ...options,\n })\n\n if (promiseOperation) {\n acc.push(promiseOperation)\n }\n\n generators?.forEach((generator) => {\n const promise = generator.operation?.({\n instance: this,\n operation,\n options: {\n ...this.options,\n ...options,\n },\n } as any) as Promise<Array<KubbFile.File<TFileMeta>>>\n\n if (promise) {\n acc.push(promise)\n }\n })\n })\n\n return acc\n }, [] as OperationMethodResult<TFileMeta>[])\n\n const operations = Object.values(this.operationsByMethod).map((item) => Object.values(item).map((item) => item.operation))\n\n promises.push(this.all(operations.flat().filter(Boolean), this.operationsByMethod))\n\n generators?.forEach((generator) => {\n const promise = generator.operations?.({\n instance: this,\n operations: operations.flat().filter(Boolean),\n operationsByMethod: this.operationsByMethod,\n options: this.options,\n } as any) as Promise<Array<KubbFile.File<TFileMeta>>>\n\n if (promise) {\n promises.push(promise)\n }\n })\n\n const files = await Promise.all(promises)\n\n // using .flat because operationGenerator[method] can return a array of files or just one file\n return files.flat().filter(Boolean)\n }\n\n /**\n * Operation\n */\n async operation(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n\n /**\n * GET\n */\n async get(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n\n /**\n * POST\n */\n async post(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n /**\n * PATCH\n */\n async patch(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n\n /**\n * PUT\n */\n async put(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n\n /**\n * DELETE\n */\n async delete(operation: Operation, options: TPluginOptions['resolvedOptions']): OperationMethodResult<TFileMeta> {\n return []\n }\n\n /**\n * Combination of GET, POST, PATCH, PUT, DELETE\n */\n async all(operations: Operation[], paths: OperationsByMethod): OperationMethodResult<TFileMeta> {\n return []\n }\n}\n","import { FileManager, createPlugin } from '@kubb/core'\n\nimport { getSchemas } from './utils/getSchemas.ts'\nimport { parseFromConfig } from './utils/parseFromConfig.ts'\n\nimport path from 'node:path'\nimport type { Config } from '@kubb/core'\nimport type { Logger } from '@kubb/core/logger'\nimport type { Oas } from '@kubb/oas'\nimport { OperationGenerator } from './OperationGenerator.ts'\nimport { SchemaGenerator } from './SchemaGenerator.ts'\nimport { jsonGenerator } from './generators'\nimport type { PluginOas } from './types.ts'\n\nexport const pluginOasName = 'plugin-oas' satisfies PluginOas['name']\n\nexport const pluginOas = createPlugin<PluginOas>((options) => {\n const {\n output = {\n path: 'schemas',\n },\n validate = true,\n generators = [jsonGenerator],\n serverIndex,\n contentType,\n oasClass,\n } = options\n\n const getOas = async ({ config, logger }: { config: Config; logger: Logger }): Promise<Oas> => {\n try {\n // needs to be in a different variable or the catch here will not work(return of a promise instead)\n const oas = await parseFromConfig(config, oasClass)\n\n if (validate) {\n await oas.valdiate()\n }\n\n return oas\n } catch (e) {\n const error = e as Error\n\n logger.emit('warning', error?.message)\n return parseFromConfig(config, oasClass)\n }\n }\n\n return {\n name: pluginOasName,\n options: {\n output,\n ...options,\n },\n context() {\n const { config, logger } = this\n\n return {\n getOas() {\n return getOas({ config, logger })\n },\n async getSchemas({ includes } = {}) {\n const oas = await this.getOas()\n return getSchemas({ oas, contentType, includes })\n },\n async getBaseURL() {\n const oasInstance = await this.getOas()\n if (serverIndex) {\n return oasInstance.api.servers?.at(serverIndex)?.url\n }\n\n return undefined\n },\n contentType,\n }\n },\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n return path.resolve(root, output.path, baseName)\n },\n async buildStart() {\n if (!output) {\n return\n }\n\n const oas = await getOas({\n config: this.config,\n logger: this.logger,\n })\n await oas.dereference()\n\n const schemaGenerator = new SchemaGenerator(\n {\n unknownType: 'unknown',\n dateType: 'date',\n transformers: {},\n ...this.plugin.options,\n },\n {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override: undefined,\n mode: 'split',\n output: output.path,\n },\n )\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n exclude: undefined,\n include: undefined,\n override: undefined,\n mode: 'split',\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n\n await this.addFile(...operationFiles)\n },\n }\n})\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as Options, P as PluginOas } from './OperationGenerator-
|
|
2
|
-
export { A as API, E as Exclude,
|
|
1
|
+
import { O as Options, P as PluginOas } from './OperationGenerator-Bw6sj3Eb.cjs';
|
|
2
|
+
export { A as API, E as Exclude, o as Generator, p as GeneratorOptions, G as GetSchemaGeneratorOptions, I as Include, b as OperationGenerator, a as OperationMethodResult, v as OperationSchema, w as OperationSchemas, x as OperationsByMethod, y as Override, R as ReactGeneratorOptions, r as Ref, t as Refs, q as ResolvePathOptions, u as Resolver, f as Schema, e as SchemaGenerator, S as SchemaGeneratorBuildOptions, c as SchemaGeneratorOptions, h as SchemaKeyword, i as SchemaKeywordBase, j as SchemaKeywordMapper, k as SchemaMapper, d as SchemaMethodResult, g as SchemaTree, m as createGenerator, n as createReactGenerator, l as isKeyword, s as schemaKeywords } from './OperationGenerator-Bw6sj3Eb.cjs';
|
|
3
3
|
import * as _kubb_core from '@kubb/core';
|
|
4
4
|
import '@kubb/fs/types';
|
|
5
5
|
import '@kubb/oas';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { O as Options, P as PluginOas } from './OperationGenerator-
|
|
2
|
-
export { A as API, E as Exclude,
|
|
1
|
+
import { O as Options, P as PluginOas } from './OperationGenerator-Bw6sj3Eb.js';
|
|
2
|
+
export { A as API, E as Exclude, o as Generator, p as GeneratorOptions, G as GetSchemaGeneratorOptions, I as Include, b as OperationGenerator, a as OperationMethodResult, v as OperationSchema, w as OperationSchemas, x as OperationsByMethod, y as Override, R as ReactGeneratorOptions, r as Ref, t as Refs, q as ResolvePathOptions, u as Resolver, f as Schema, e as SchemaGenerator, S as SchemaGeneratorBuildOptions, c as SchemaGeneratorOptions, h as SchemaKeyword, i as SchemaKeywordBase, j as SchemaKeywordMapper, k as SchemaMapper, d as SchemaMethodResult, g as SchemaTree, m as createGenerator, n as createReactGenerator, l as isKeyword, s as schemaKeywords } from './OperationGenerator-Bw6sj3Eb.js';
|
|
3
3
|
import * as _kubb_core from '@kubb/core';
|
|
4
4
|
import '@kubb/fs/types';
|
|
5
5
|
import '@kubb/oas';
|
package/dist/index.js
CHANGED
|
@@ -2,8 +2,8 @@ import { parseFromConfig } from './chunk-BG77DP54.js';
|
|
|
2
2
|
import { jsonGenerator } from './chunk-TNWNNVQW.js';
|
|
3
3
|
export { createGenerator, createReactGenerator } from './chunk-TNWNNVQW.js';
|
|
4
4
|
import './chunk-R47XMJ32.js';
|
|
5
|
-
import { SchemaGenerator } from './chunk-
|
|
6
|
-
export { SchemaGenerator, isKeyword, schemaKeywords } from './chunk-
|
|
5
|
+
import { SchemaGenerator } from './chunk-JA75IPYU.js';
|
|
6
|
+
export { SchemaGenerator, isKeyword, schemaKeywords } from './chunk-JA75IPYU.js';
|
|
7
7
|
import { getSchemas } from './chunk-XNCEFOE6.js';
|
|
8
8
|
import './chunk-GF26SDHQ.js';
|
|
9
9
|
import { createPlugin, FileManager, BaseGenerator } from '@kubb/core';
|
|
@@ -286,7 +286,7 @@ var pluginOas = createPlugin((options) => {
|
|
|
286
286
|
},
|
|
287
287
|
validate = true,
|
|
288
288
|
generators = [jsonGenerator],
|
|
289
|
-
serverIndex
|
|
289
|
+
serverIndex,
|
|
290
290
|
contentType,
|
|
291
291
|
oasClass
|
|
292
292
|
} = options;
|
|
@@ -321,7 +321,10 @@ var pluginOas = createPlugin((options) => {
|
|
|
321
321
|
},
|
|
322
322
|
async getBaseURL() {
|
|
323
323
|
const oasInstance = await this.getOas();
|
|
324
|
-
|
|
324
|
+
if (serverIndex) {
|
|
325
|
+
return oasInstance.api.servers?.at(serverIndex)?.url;
|
|
326
|
+
}
|
|
327
|
+
return void 0;
|
|
325
328
|
},
|
|
326
329
|
contentType
|
|
327
330
|
};
|