{"version":3,"file":"generators-ByXJj_yX.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 { PluginSvelteQuery } from '../types'\n\nexport const mutationGenerator = createReactGenerator<PluginSvelteQuery>({\n  name: 'svelte-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 = !!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 : '@tanstack/svelte-query'\n\n    const mutation = {\n      name: getName(operation, { type: 'function', prefix: 'create' }),\n      typeName: getName(operation, { type: 'type' }),\n      file: getFile(operation, { prefix: 'create' }),\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            <File.Import name={'fetch'} path={options.client.importPath} />\n            <File.Import name={['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            <File.Import name={['fetch']} root={mutation.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n            <File.Import\n              name={['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        {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          paramsCasing={options.paramsCasing}\n          pathParamsType={options.pathParamsType}\n          typeSchemas={type.schemas}\n          transformer={options.mutationKey}\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.paramsCasing}\n            paramsType={options.paramsType}\n            pathParamsType={options.pathParamsType}\n            parser={options.parser}\n          />\n        )}\n        {options.mutation && (\n          <>\n            <File.Import name={['createMutation']} path={importPath} />\n            <File.Import name={['CreateMutationOptions', 'CreateMutationResult', 'QueryClient']} path={importPath} isTypeOnly />\n            <Mutation\n              name={mutation.name}\n              clientName={client.name}\n              typeName={mutation.typeName}\n              typeSchemas={type.schemas}\n              operation={operation}\n              paramsCasing={options.paramsCasing}\n              dataReturnType={options.client.dataReturnType || 'data'}\n              paramsType={options.paramsType}\n              pathParamsType={options.pathParamsType}\n              mutationKeyName={mutationKey.name}\n            />\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 { PluginSvelteQuery } from '../types'\n\nexport const queryGenerator = createReactGenerator<PluginSvelteQuery>({\n  name: 'svelte-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 : '@tanstack/svelte-query'\n\n    const query = {\n      name: getName(operation, { type: 'function', prefix: 'create' }),\n      typeName: getName(operation, { type: 'type' }),\n      file: getFile(operation, { prefix: 'create' }),\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\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            <File.Import name={'fetch'} path={options.client.importPath} />\n            <File.Import name={['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            <File.Import name={['fetch']} root={query.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n            <File.Import\n              name={['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        <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\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\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.paramsCasing}\n            paramsType={options.paramsType}\n            pathParamsType={options.pathParamsType}\n            parser={options.parser}\n          />\n        )}\n        <File.Import name={['queryOptions']} path={importPath} />\n        <QueryOptions\n          name={queryOptions.name}\n          clientName={client.name}\n          queryKeyName={queryKey.name}\n          typeSchemas={type.schemas}\n          paramsCasing={options.paramsCasing}\n          paramsType={options.paramsType}\n          pathParamsType={options.pathParamsType}\n          dataReturnType={options.client.dataReturnType || 'data'}\n        />\n        {options.query && (\n          <>\n            <File.Import name={['createQuery']} path={importPath} />\n            <File.Import name={['QueryKey', 'QueryClient', 'CreateBaseQueryOptions', 'CreateQueryResult']} path={importPath} isTypeOnly />\n            <Query\n              name={query.name}\n              queryOptionsName={queryOptions.name}\n              typeSchemas={type.schemas}\n              pathParamsType={options.pathParamsType}\n              operation={operation}\n              paramsCasing={options.paramsCasing}\n              paramsType={options.paramsType}\n              dataReturnType={options.client.dataReturnType || 'data'}\n              queryKeyName={queryKey.name}\n              queryKeyTypeName={queryKey.typeName}\n            />\n          </>\n        )}\n      </File>\n    )\n  },\n})\n"],"mappings":"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"}