{"version":3,"sources":["/home/runner/work/kubb/kubb/packages/swagger-client/dist/chunk-WGN7DKLR.cjs","../src/components/Client.tsx","../src/components/Operations.tsx"],"names":["Template","RootTemplate","URLPath","jsx","useApp","Parser","File","defaultTemplates"],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/swagger-client/dist/chunk-WGN7DKLR.cjs","sourcesContent":[null,"import { URLPath } from '@kubb/core/utils'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, Parser, useApp } from '@kubb/react'\nimport { pluginTsName } from '@kubb/swagger-ts'\n\nimport { isOptional } from '@kubb/oas'\nimport type { HttpMethod } from '@kubb/oas'\nimport type { KubbNode, Params } from '@kubb/react'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n  /**\n   * Name of the function\n   */\n  name: string\n  /**\n   * Parameters/options/props that need to be used\n   */\n  params: Params\n  /**\n   * Generics that needs to be added for TypeScript\n   */\n  generics?: string\n  /**\n   * ReturnType(see async for adding Promise type)\n   */\n  returnType?: string\n  /**\n   * Options for JSdocs\n   */\n  JSDoc?: {\n    comments: string[]\n  }\n  client: {\n    baseURL: string | undefined\n    generics: string | string[]\n    method: HttpMethod\n    path: URLPath\n    dataReturnType: PluginClient['options']['dataReturnType']\n    withQueryParams: boolean\n    withData: boolean\n    withHeaders: boolean\n    contentType: string\n  }\n}\n\nfunction Template({ name, generics, returnType, params, JSDoc, client }: TemplateProps): KubbNode {\n  const isFormData = client.contentType === 'multipart/form-data'\n  const headers = [\n    client.contentType !== 'application/json' ? `'Content-Type': '${client.contentType}'` : undefined,\n    client.withHeaders ? '...headers' : undefined,\n  ]\n    .filter(Boolean)\n    .join(', ')\n  const clientParams: Params = {\n    data: {\n      mode: 'object',\n      children: {\n        method: {\n          type: 'string',\n          value: JSON.stringify(client.method),\n        },\n        url: {\n          type: 'string',\n          value: client.path.template,\n        },\n        baseURL: client.baseURL\n          ? {\n              type: 'string',\n              value: JSON.stringify(client.baseURL),\n            }\n          : undefined,\n        params: client.withQueryParams\n          ? {\n              type: 'any',\n            }\n          : undefined,\n        data: client.withData\n          ? {\n              type: 'any',\n              value: isFormData ? 'formData' : undefined,\n            }\n          : undefined,\n        headers: headers.length\n          ? {\n              type: 'any',\n              value: headers.length ? `{ ${headers}, ...options.headers }` : undefined,\n            }\n          : undefined,\n        options: {\n          type: 'any',\n          mode: 'inlineSpread',\n        },\n      },\n    },\n  }\n\n  const formData = isFormData\n    ? `\n   const formData = new FormData()\n   if(data) {\n    Object.keys(data).forEach((key) => {\n      const value = data[key];\n      if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n        formData.append(key, value);\n      }\n    })\n   }\n  `\n    : undefined\n\n  return (\n    <Function name={name} async export generics={generics} returnType={returnType} params={params} JSDoc={JSDoc}>\n      {formData || ''}\n      <Function.Call name=\"res\" to={<Function name=\"client\" async generics={client.generics} params={clientParams} />} />\n      <Function.Return>{client.dataReturnType === 'data' ? 'res.data' : 'res'}</Function.Return>\n    </Function>\n  )\n}\n\ntype RootTemplateProps = {\n  children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n  const {\n    plugin: {\n      options: {\n        client: { importPath },\n        extName,\n      },\n    },\n  } = useApp<PluginClient>()\n\n  const { getSchemas, getFile } = useOperationManager()\n  const operation = useOperation()\n\n  const file = getFile(operation)\n  const fileType = getFile(operation, { pluginKey: [pluginTsName] })\n  const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n  return (\n    <Parser language=\"typescript\">\n      <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n        <File.Import name={'client'} path={importPath} />\n        <File.Import name={['ResponseConfig']} path={importPath} isTypeOnly />\n        <File.Import\n          extName={extName}\n          name={[schemas.request?.name, schemas.response.name, schemas.pathParams?.name, schemas.queryParams?.name, schemas.headerParams?.name].filter(Boolean)}\n          root={file.path}\n          path={fileType.path}\n          isTypeOnly\n        />\n        <File.Source>{children}</File.Source>\n      </File>\n    </Parser>\n  )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype ClientProps = {\n  baseURL: string | undefined\n  /**\n   * This will make it possible to override the default behaviour.\n   */\n  Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Client({ baseURL, Template = defaultTemplates.default }: ClientProps): KubbNode {\n  const {\n    plugin: {\n      options: { client, dataReturnType, pathParamsType },\n    },\n  } = useApp<PluginClient>()\n\n  const { getSchemas, getName } = useOperationManager()\n  const operation = useOperation()\n\n  const contentType = operation.getContentType()\n  const name = getName(operation, { type: 'function' })\n  const schemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })\n\n  return (\n    <Template\n      name={name}\n      params={{\n        pathParams: {\n          mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n          children: getPathParams(schemas.pathParams, { typed: true }),\n        },\n        data: schemas.request?.name\n          ? {\n              type: schemas.request?.name,\n              optional: isOptional(schemas.request?.schema),\n            }\n          : undefined,\n        params: schemas.queryParams?.name\n          ? {\n              type: schemas.queryParams?.name,\n              optional: isOptional(schemas.queryParams?.schema),\n            }\n          : undefined,\n        headers: schemas.headerParams?.name\n          ? {\n              type: schemas.headerParams?.name,\n              optional: isOptional(schemas.headerParams?.schema),\n            }\n          : undefined,\n        options: {\n          type: 'Partial<Parameters<typeof client>[0]>',\n          default: '{}',\n        },\n      }}\n      returnType={dataReturnType === 'data' ? `ResponseConfig<${schemas.response.name}>[\"data\"]` : `ResponseConfig<${schemas.response.name}>`}\n      JSDoc={{\n        comments: getComments(operation),\n      }}\n      client={{\n        baseURL,\n        generics: [schemas.response.name, schemas.request?.name].filter(Boolean),\n        dataReturnType,\n        withQueryParams: !!schemas.queryParams?.name,\n        withData: !!schemas.request?.name,\n        withHeaders: !!schemas.headerParams?.name,\n        method: operation.method,\n        path: new URLPath(operation.path),\n        contentType,\n      }}\n    />\n  )\n}\n\ntype FileProps = {\n  baseURL: string | undefined\n  /**\n   * This will make it possible to override the default behaviour.\n   */\n  templates?: Templates\n}\n\nClient.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n  const templates = { ...defaultTemplates, ...props.templates }\n\n  const Template = templates.default\n  const RootTemplate = templates.root\n\n  return (\n    <RootTemplate>\n      <Client baseURL={baseURL} Template={Template} />\n    </RootTemplate>\n  )\n}\n\nClient.templates = defaultTemplates\n","import { URLPath } from '@kubb/core/utils'\nimport { useOperations } from '@kubb/plugin-oas/hooks'\nimport { Const, File, Parser, useApp } from '@kubb/react'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport type { KubbNode } from '@kubb/react'\nimport type { ComponentProps, ComponentType } from 'react'\nimport type { FileMeta, PluginClient } from '../types.ts'\n\ntype TemplateProps = {\n  /**\n   * Name of the function\n   */\n  name: string\n  operations: Operation[]\n  baseURL: string | undefined\n}\n\nfunction Template({ name, operations }: TemplateProps): KubbNode {\n  const operationsObject: Record<string, { path: string; method: HttpMethod }> = {}\n\n  operations.forEach((operation) => {\n    operationsObject[operation.getOperationId()] = {\n      path: new URLPath(operation.path).URL,\n      method: operation.method,\n    }\n  })\n  return (\n    <Const name={name} export asConst>\n      {JSON.stringify(operationsObject, undefined, 2)}\n    </Const>\n  )\n}\n\ntype RootTemplateProps = {\n  children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: RootTemplateProps) {\n  const {\n    pluginManager,\n    plugin: { key: pluginKey },\n  } = useApp<PluginClient>()\n  const file = pluginManager.getFile({ name: 'operations', extName: '.ts', pluginKey })\n\n  return (\n    <Parser language=\"typescript\">\n      <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta} exportable={false}>\n        <File.Source>{children}</File.Source>\n      </File>\n    </Parser>\n  )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype Props = {\n  baseURL: string | undefined\n  /**\n   * This will make it possible to override the default behaviour.\n   */\n  Template?: ComponentType<ComponentProps<typeof Template>>\n}\n\nexport function Operations({ baseURL, Template = defaultTemplates.default }: Props): KubbNode {\n  const operations = useOperations()\n\n  return <Template baseURL={baseURL} name=\"operations\" operations={operations} />\n}\n\ntype FileProps = {\n  baseURL: string | undefined\n  /**\n   * This will make it possible to override the default behaviour.\n   */\n  templates?: Templates\n}\n\nOperations.File = function ({ baseURL, ...props }: FileProps): KubbNode {\n  const templates = { ...defaultTemplates, ...props.templates }\n\n  const Template = templates.default\n  const RootTemplate = templates.root\n\n  return (\n    <RootTemplate>\n      <Operations baseURL={baseURL} Template={Template} />\n    </RootTemplate>\n  )\n}\n\nOperations.templates = defaultTemplates\n"]}