@kubb/plugin-oas 3.0.0-beta.8 → 3.0.0
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 +2 -2
- 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 +1 -1
- 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 +10 -10
- package/src/SchemaMapper.ts +6 -0
- 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');
|
|
@@ -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","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"]}
|
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';
|
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","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"]}
|
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
|
};
|