{"version":3,"file":"generators-BlEeKP7K.cjs","names":["pluginTsName","pluginZodName","pluginClientName","File","path","MutationKey","Client","Mutation","pluginClientName","pluginTsName","pluginZodName","File","path","QueryKey","Client","QueryOptions","Query"],"sources":["../src/generators/mutationGenerator.tsx","../src/generators/queryGenerator.tsx"],"sourcesContent":["import path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport { Mutation, MutationKey } from '../components'\nimport type { PluginSwr } from '../types'\n\nexport const mutationGenerator = createReactGenerator<PluginSwr>({\n  name: 'swr-mutation',\n  Operation({ config, operation, generator, plugin }) {\n    const {\n      options,\n      options: { output },\n    } = plugin\n    const pluginManager = usePluginManager()\n\n    const oas = useOas()\n    const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n    const isQuery = !!options.query && options.query?.methods.some((method) => operation.method === method)\n    const isMutation =\n      options.mutation !== false &&\n      !isQuery &&\n      difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some((method) => operation.method === method)\n\n    const importPath = options.mutation ? options.mutation.importPath : 'swr'\n\n    const mutation = {\n      name: getName(operation, { type: 'function', prefix: 'use' }),\n      typeName: getName(operation, { type: 'type' }),\n      file: getFile(operation, { prefix: 'use' }),\n    }\n\n    const type = {\n      file: getFile(operation, { pluginKey: [pluginTsName] }),\n      //todo remove type?\n      schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n    }\n\n    const zod = {\n      file: getFile(operation, { pluginKey: [pluginZodName] }),\n      schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n    }\n\n    const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])\n    // Class-based clients are not compatible with query hooks, so we generate inline clients\n    const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n    const client = {\n      name: shouldUseClientPlugin\n        ? getName(operation, {\n            type: 'function',\n            pluginKey: [pluginClientName],\n          })\n        : getName(operation, {\n            type: 'function',\n          }),\n      file: getFile(operation, { pluginKey: [pluginClientName] }),\n    }\n\n    const mutationKey = {\n      name: getName(operation, { type: 'const', suffix: 'MutationKey' }),\n      typeName: getName(operation, { type: 'type', suffix: 'MutationKey' }),\n    }\n\n    if (!isMutation) {\n      return null\n    }\n\n    return (\n      <File\n        baseName={mutation.file.baseName}\n        path={mutation.file.path}\n        meta={mutation.file.meta}\n        banner={getBanner({ oas, output, config: pluginManager.config })}\n        footer={getFooter({ oas, output })}\n      >\n        {options.parser === 'zod' && (\n          <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={mutation.file.path} path={zod.file.path} />\n        )}\n        {options.client.importPath ? (\n          <>\n            {!shouldUseClientPlugin && <File.Import name={'fetch'} path={options.client.importPath} />}\n            <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n            {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n          </>\n        ) : (\n          <>\n            {!shouldUseClientPlugin && (\n              <File.Import name={['fetch']} root={mutation.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n            )}\n            <File.Import\n              name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n              root={mutation.file.path}\n              path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n              isTypeOnly\n            />\n            {options.client.dataReturnType === 'full' && (\n              <File.Import\n                name={['ResponseConfig']}\n                root={mutation.file.path}\n                path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n                isTypeOnly\n              />\n            )}\n          </>\n        )}\n        <File.Import name=\"useSWRMutation\" path={importPath} />\n        <File.Import name={['SWRMutationConfiguration', 'SWRMutationResponse']} path={importPath} isTypeOnly />\n        {shouldUseClientPlugin && <File.Import name={[client.name]} root={mutation.file.path} path={client.file.path} />}\n        {!shouldUseClientPlugin && (\n          <File.Import name={['buildFormData']} root={mutation.file.path} path={path.resolve(config.root, config.output.path, '.kubb/config.ts')} />\n        )}\n        <File.Import\n          name={[\n            type.schemas.request?.name,\n            type.schemas.response.name,\n            type.schemas.pathParams?.name,\n            type.schemas.queryParams?.name,\n            type.schemas.headerParams?.name,\n            ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n          ].filter(Boolean)}\n          root={mutation.file.path}\n          path={type.file.path}\n          isTypeOnly\n        />\n\n        <MutationKey\n          name={mutationKey.name}\n          typeName={mutationKey.typeName}\n          operation={operation}\n          pathParamsType={options.pathParamsType}\n          typeSchemas={type.schemas}\n          paramsCasing={options.paramsCasing}\n          transformer={options.mutationKey}\n        />\n\n        {!shouldUseClientPlugin && (\n          <Client\n            name={client.name}\n            baseURL={options.client.baseURL}\n            operation={operation}\n            typeSchemas={type.schemas}\n            zodSchemas={zod.schemas}\n            dataReturnType={options.client.dataReturnType || 'data'}\n            paramsCasing={options.client?.paramsCasing || options.paramsCasing}\n            paramsType={options.paramsType}\n            pathParamsType={options.pathParamsType}\n            parser={options.parser}\n          />\n        )}\n        {options.mutation && (\n          <Mutation\n            name={mutation.name}\n            clientName={client.name}\n            typeName={mutation.typeName}\n            typeSchemas={type.schemas}\n            operation={operation}\n            dataReturnType={options.client.dataReturnType || 'data'}\n            paramsType={options.paramsType}\n            paramsCasing={options.paramsCasing}\n            pathParamsType={options.pathParamsType}\n            mutationKeyName={mutationKey.name}\n            mutationKeyTypeName={mutationKey.typeName}\n            paramsToTrigger={options.mutation.paramsToTrigger}\n          />\n        )}\n      </File>\n    )\n  },\n})\n","import path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File } from '@kubb/react-fabric'\nimport { difference } from 'remeda'\nimport { Query, QueryKey, QueryOptions } from '../components'\nimport type { PluginSwr } from '../types'\n\nexport const queryGenerator = createReactGenerator<PluginSwr>({\n  name: 'swr-query',\n  Operation({ config, operation, generator, plugin }) {\n    const {\n      options,\n      options: { output },\n    } = plugin\n    const pluginManager = usePluginManager()\n\n    const oas = useOas()\n    const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n    const isQuery = typeof options.query === 'boolean' ? true : options.query?.methods.some((method) => operation.method === method)\n    const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(\n      (method) => operation.method === method,\n    )\n    const importPath = options.query ? options.query.importPath : 'swr/mutation'\n\n    const query = {\n      name: getName(operation, { type: 'function', prefix: 'use' }),\n      typeName: getName(operation, { type: 'type' }),\n      file: getFile(operation, { prefix: 'use' }),\n    }\n\n    const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])\n    // Class-based clients are not compatible with query hooks, so we generate inline clients\n    const shouldUseClientPlugin = hasClientPlugin && options.client.clientType !== 'class'\n    const client = {\n      name: shouldUseClientPlugin\n        ? getName(operation, {\n            type: 'function',\n            pluginKey: [pluginClientName],\n          })\n        : getName(operation, {\n            type: 'function',\n          }),\n      file: getFile(operation, { pluginKey: [pluginClientName] }),\n    }\n\n    const queryOptions = {\n      name: getName(operation, { type: 'function', suffix: 'QueryOptions' }),\n    }\n    const queryKey = {\n      name: getName(operation, { type: 'const', suffix: 'QueryKey' }),\n      typeName: getName(operation, { type: 'type', suffix: 'QueryKey' }),\n    }\n\n    const type = {\n      file: getFile(operation, { pluginKey: [pluginTsName] }),\n      //todo remove type?\n      schemas: getSchemas(operation, {\n        pluginKey: [pluginTsName],\n        type: 'type',\n      }),\n    }\n\n    const zod = {\n      file: getFile(operation, { pluginKey: [pluginZodName] }),\n      schemas: getSchemas(operation, {\n        pluginKey: [pluginZodName],\n        type: 'function',\n      }),\n    }\n\n    if (!isQuery || isMutation) {\n      return null\n    }\n\n    return (\n      <File\n        baseName={query.file.baseName}\n        path={query.file.path}\n        meta={query.file.meta}\n        banner={getBanner({ oas, output, config: pluginManager.config })}\n        footer={getFooter({ oas, output })}\n      >\n        {options.parser === 'zod' && (\n          <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={query.file.path} path={zod.file.path} />\n        )}\n        {options.client.importPath ? (\n          <>\n            {!shouldUseClientPlugin && <File.Import name={'fetch'} path={options.client.importPath} />}\n            <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n            {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n          </>\n        ) : (\n          <>\n            {!shouldUseClientPlugin && (\n              <File.Import name={['fetch']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n            )}\n            <File.Import\n              name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n              root={query.file.path}\n              path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n              isTypeOnly\n            />\n            {options.client.dataReturnType === 'full' && (\n              <File.Import name={['ResponseConfig']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} isTypeOnly />\n            )}\n          </>\n        )}\n        {shouldUseClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}\n        {!shouldUseClientPlugin && (\n          <File.Import name={['buildFormData']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/config.ts')} />\n        )}\n\n        <File.Import\n          name={[\n            type.schemas.request?.name,\n            type.schemas.response.name,\n            type.schemas.pathParams?.name,\n            type.schemas.queryParams?.name,\n            type.schemas.headerParams?.name,\n            ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n          ].filter(Boolean)}\n          root={query.file.path}\n          path={type.file.path}\n          isTypeOnly\n        />\n        <QueryKey\n          name={queryKey.name}\n          typeName={queryKey.typeName}\n          operation={operation}\n          pathParamsType={options.pathParamsType}\n          typeSchemas={type.schemas}\n          paramsCasing={options.paramsCasing}\n          transformer={options.queryKey}\n        />\n        {!shouldUseClientPlugin && (\n          <Client\n            name={client.name}\n            baseURL={options.client.baseURL}\n            operation={operation}\n            typeSchemas={type.schemas}\n            zodSchemas={zod.schemas}\n            dataReturnType={options.client.dataReturnType || 'data'}\n            paramsCasing={options.client.paramsCasing || options.paramsCasing}\n            paramsType={options.paramsType}\n            pathParamsType={options.pathParamsType}\n            parser={options.parser}\n          />\n        )}\n        <QueryOptions\n          name={queryOptions.name}\n          clientName={client.name}\n          typeSchemas={type.schemas}\n          paramsType={options.paramsType}\n          paramsCasing={options.paramsCasing}\n          pathParamsType={options.pathParamsType}\n        />\n        {options.query && (\n          <>\n            <File.Import name=\"useSWR\" path={importPath} />\n            <File.Import name={['SWRResponse']} path={importPath} isTypeOnly />\n            <Query\n              name={query.name}\n              queryOptionsName={queryOptions.name}\n              typeSchemas={type.schemas}\n              paramsType={options.paramsType}\n              pathParamsType={options.pathParamsType}\n              operation={operation}\n              dataReturnType={options.client.dataReturnType || 'data'}\n              queryKeyName={queryKey.name}\n              paramsCasing={options.paramsCasing}\n              queryKeyTypeName={queryKey.typeName}\n            />\n          </>\n        )}\n      </File>\n    )\n  },\n})\n"],"mappings":"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"}