@kubb/plugin-react-query 4.11.3 → 4.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { c as Operation, i as Transformer, o as OperationSchemas, r as PluginReactQuery, t as Infinite } from "./types-C3w5ACDw.cjs";
1
+ import { c as Operation, i as Transformer, o as OperationSchemas, r as PluginReactQuery, t as Infinite } from "./types-Dr1tL-HG.cjs";
2
2
  import { FunctionParams } from "@kubb/react-fabric";
3
3
  import { KubbNode } from "@kubb/react-fabric/types";
4
4
 
@@ -1,4 +1,4 @@
1
- import { c as Operation, i as Transformer, o as OperationSchemas, r as PluginReactQuery, t as Infinite } from "./types-_A_KP2sO.js";
1
+ import { c as Operation, i as Transformer, o as OperationSchemas, r as PluginReactQuery, t as Infinite } from "./types-D71Kn-Mk.js";
2
2
  import { FunctionParams } from "@kubb/react-fabric";
3
3
  import { KubbNode } from "@kubb/react-fabric/types";
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as ReactGenerator, r as PluginReactQuery } from "./types-C3w5ACDw.cjs";
1
+ import { a as ReactGenerator, r as PluginReactQuery } from "./types-Dr1tL-HG.cjs";
2
2
 
3
3
  //#region src/generators/infiniteQueryGenerator.d.ts
4
4
  declare const infiniteQueryGenerator: ReactGenerator<PluginReactQuery>;
@@ -1,4 +1,4 @@
1
- import { a as ReactGenerator, r as PluginReactQuery } from "./types-_A_KP2sO.js";
1
+ import { a as ReactGenerator, r as PluginReactQuery } from "./types-D71Kn-Mk.js";
2
2
 
3
3
  //#region src/generators/infiniteQueryGenerator.d.ts
4
4
  declare const infiniteQueryGenerator: ReactGenerator<PluginReactQuery>;
package/dist/index.cjs CHANGED
@@ -129,7 +129,7 @@ const pluginReactQuery = (0, __kubb_core.definePlugin)((options) => {
129
129
  fabric: this.fabric,
130
130
  oas,
131
131
  pluginManager: this.pluginManager,
132
- logger: this.logger,
132
+ events: this.events,
133
133
  plugin: this.plugin,
134
134
  contentType,
135
135
  exclude,
@@ -142,8 +142,7 @@ const pluginReactQuery = (0, __kubb_core.definePlugin)((options) => {
142
142
  type: output.barrelType ?? "named",
143
143
  root,
144
144
  output,
145
- meta: { pluginKey: this.plugin.key },
146
- logger: this.logger
145
+ meta: { pluginKey: this.plugin.key }
147
146
  });
148
147
  await this.upsertFile(...barrelFiles);
149
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["queryGenerator","suspenseQueryGenerator","infiniteQueryGenerator","suspenseInfiniteQueryGenerator","mutationGenerator","MutationKey","QueryKey","pluginOasName","pluginTsName","pluginZodName","path","options","groupName: Group['name']","pluginClientName","OperationGenerator"],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { definePlugin, type Group, getBarrelFiles, getMode } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { resolveModuleSource } from '@kubb/core/utils'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { MutationKey } from './components'\nimport { QueryKey } from './components/QueryKey.tsx'\nimport { infiniteQueryGenerator, mutationGenerator, queryGenerator, suspenseInfiniteQueryGenerator, suspenseQueryGenerator } from './generators'\nimport type { PluginReactQuery } from './types.ts'\n\nexport const pluginReactQueryName = 'plugin-react-query' satisfies PluginReactQuery['name']\n\nexport const pluginReactQuery = definePlugin<PluginReactQuery>((options) => {\n const {\n output = { path: 'hooks', barrelType: 'named' },\n group,\n exclude = [],\n include,\n override = [],\n parser = 'client',\n suspense = {},\n infinite = false,\n transformers = {},\n paramsType = 'inline',\n pathParamsType = paramsType === 'object' ? 'object' : options.pathParamsType || 'inline',\n generators = [queryGenerator, suspenseQueryGenerator, infiniteQueryGenerator, suspenseInfiniteQueryGenerator, mutationGenerator].filter(Boolean),\n mutation = {},\n query = {},\n mutationKey = MutationKey.getTransformer,\n queryKey = QueryKey.getTransformer,\n paramsCasing,\n contentType,\n client,\n } = options\n\n const clientName = client?.client ?? 'axios'\n const clientImportPath = client?.importPath ?? (!client?.bundle ? `@kubb/plugin-client/clients/${clientName}` : undefined)\n\n return {\n name: pluginReactQueryName,\n options: {\n output,\n client: {\n ...options.client,\n client: clientName,\n clientType: client?.clientType ?? 'function',\n dataReturnType: client?.dataReturnType ?? 'data',\n pathParamsType,\n importPath: clientImportPath,\n },\n infinite: infinite\n ? {\n queryParam: 'id',\n initialPageParam: 0,\n cursorParam: undefined,\n nextParam: undefined,\n previousParam: undefined,\n ...infinite,\n }\n : false,\n suspense,\n queryKey,\n query:\n query === false\n ? false\n : {\n methods: ['get'],\n importPath: '@tanstack/react-query',\n ...query,\n },\n mutationKey,\n mutation:\n mutation === false\n ? false\n : {\n methods: ['post', 'put', 'patch', 'delete'],\n importPath: '@tanstack/react-query',\n ...mutation,\n },\n paramsType,\n pathParamsType,\n parser,\n paramsCasing,\n group,\n },\n pre: [pluginOasName, pluginTsName, parser === 'zod' ? pluginZodName : undefined].filter(Boolean),\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? 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 if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n let resolvedName = camelCase(name)\n\n if (type === 'file' || type === 'function') {\n resolvedName = camelCase(name, {\n isFile: type === 'file',\n })\n }\n if (type === 'type') {\n resolvedName = pascalCase(name)\n }\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async install() {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n const oas = await this.getOas()\n const baseURL = await this.getBaseURL()\n\n if (baseURL) {\n this.plugin.options.client.baseURL = baseURL\n }\n\n const hasClientPlugin = !!this.pluginManager.getPluginByKey([pluginClientName])\n\n if (this.plugin.options.client.bundle && !hasClientPlugin && !this.plugin.options.client.importPath) {\n // pre add bundled fetch\n await this.upsertFile({\n baseName: 'fetch.ts',\n path: path.resolve(root, '.kubb/fetch.ts'),\n sources: [\n {\n name: 'fetch',\n value: resolveModuleSource(\n this.plugin.options.client.client === 'fetch' ? '@kubb/plugin-client/templates/clients/fetch' : '@kubb/plugin-client/templates/clients/axios',\n ).source,\n isExportable: true,\n isIndexable: true,\n },\n ],\n })\n }\n\n if (!hasClientPlugin) {\n await this.upsertFile({\n baseName: 'config.ts',\n path: path.resolve(root, '.kubb/config.ts'),\n sources: [\n {\n name: 'config',\n value: resolveModuleSource('@kubb/plugin-client/templates/config').source,\n isExportable: false,\n isIndexable: false,\n },\n ],\n })\n }\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n logger: this.logger,\n plugin: this.plugin,\n contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const files = await operationGenerator.build(...generators)\n await this.upsertFile(...files)\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAa,uBAAuB;AAEpC,MAAa,kDAAmD,YAAY;CAC1E,MAAM,EACJ,SAAS;EAAE,MAAM;EAAS,YAAY;EAAS,EAC/C,OACA,UAAU,EAAE,EACZ,SACA,WAAW,EAAE,EACb,SAAS,UACT,WAAW,EAAE,EACb,WAAW,OACX,eAAe,EAAE,EACjB,aAAa,UACb,iBAAiB,eAAe,WAAW,WAAW,QAAQ,kBAAkB,UAChF,aAAa;EAACA;EAAgBC;EAAwBC;EAAwBC;EAAgCC;EAAkB,CAAC,OAAO,QAAQ,EAChJ,WAAW,EAAE,EACb,QAAQ,EAAE,EACV,cAAcC,+BAAY,gBAC1B,WAAWC,4BAAS,gBACpB,cACA,aACA,WACE;CAEJ,MAAM,aAAa,QAAQ,UAAU;CACrC,MAAM,mBAAmB,QAAQ,eAAe,CAAC,QAAQ,SAAS,+BAA+B,eAAe;AAEhH,QAAO;EACL,MAAM;EACN,SAAS;GACP;GACA,QAAQ;IACN,GAAG,QAAQ;IACX,QAAQ;IACR,YAAY,QAAQ,cAAc;IAClC,gBAAgB,QAAQ,kBAAkB;IAC1C;IACA,YAAY;IACb;GACD,UAAU,WACN;IACE,YAAY;IACZ,kBAAkB;IAClB,aAAa;IACb,WAAW;IACX,eAAe;IACf,GAAG;IACJ,GACD;GACJ;GACA;GACA,OACE,UAAU,QACN,QACA;IACE,SAAS,CAAC,MAAM;IAChB,YAAY;IACZ,GAAG;IACJ;GACP;GACA,UACE,aAAa,QACT,QACA;IACE,SAAS;KAAC;KAAQ;KAAO;KAAS;KAAS;IAC3C,YAAY;IACZ,GAAG;IACJ;GACP;GACA;GACA;GACA;GACA;GACD;EACD,KAAK;GAACC;GAAeC;GAAc,WAAW,QAAQC,kCAAgB;GAAU,CAAC,OAAO,QAAQ;EAChG,YAAY,UAAU,UAAU,WAAS;GACvC,MAAM,OAAOC,kBAAK,QAAQ,KAAK,OAAO,MAAM,KAAK,OAAO,OAAO,KAAK;AAGpE,QAFa,qCAAoBA,kBAAK,QAAQ,MAAM,OAAO,KAAK,CAAC,MAEpD;;;;;AAKX,UAAOA,kBAAK,QAAQ,MAAM,OAAO,KAAK;AAGxC,OAAI,UAAUC,WAAS,OAAO,QAAQA,WAAS,OAAO,MAAM;IAC1D,MAAMC,YAA2B,OAAO,OACpC,MAAM,QACL,QAAQ;AACP,SAAI,OAAO,SAAS,OAClB,QAAO,GAAG,IAAI,MAAM,MAAM,IAAI,CAAC;AAEjC,YAAO,2CAAa,IAAI,MAAM,CAAC;;AAGrC,WAAOF,kBAAK,QACV,MACA,OAAO,MACP,UAAU,EACR,OAAO,MAAM,SAAS,SAASC,UAAQ,MAAM,OAAQA,UAAQ,MAAM,KACpE,CAAC,EACF,SACD;;AAGH,UAAOD,kBAAK,QAAQ,MAAM,OAAO,MAAM,SAAS;;EAElD,YAAY,MAAM,MAAM;GACtB,IAAI,uDAAyB,KAAK;AAElC,OAAI,SAAS,UAAU,SAAS,WAC9B,wDAAyB,MAAM,EAC7B,QAAQ,SAAS,QAClB,CAAC;AAEJ,OAAI,SAAS,OACX,yDAA0B,KAAK;AAGjC,OAAI,KACF,QAAO,cAAc,OAAO,cAAc,KAAK,IAAI;AAGrD,UAAO;;EAET,MAAM,UAAU;GACd,MAAM,OAAOA,kBAAK,QAAQ,KAAK,OAAO,MAAM,KAAK,OAAO,OAAO,KAAK;GACpE,MAAM,gCAAeA,kBAAK,QAAQ,MAAM,OAAO,KAAK,CAAC;GACrD,MAAM,MAAM,MAAM,KAAK,QAAQ;GAC/B,MAAM,UAAU,MAAM,KAAK,YAAY;AAEvC,OAAI,QACF,MAAK,OAAO,QAAQ,OAAO,UAAU;GAGvC,MAAM,kBAAkB,CAAC,CAAC,KAAK,cAAc,eAAe,CAACG,sCAAiB,CAAC;AAE/E,OAAI,KAAK,OAAO,QAAQ,OAAO,UAAU,CAAC,mBAAmB,CAAC,KAAK,OAAO,QAAQ,OAAO,WAEvF,OAAM,KAAK,WAAW;IACpB,UAAU;IACV,MAAMH,kBAAK,QAAQ,MAAM,iBAAiB;IAC1C,SAAS,CACP;KACE,MAAM;KACN,kDACE,KAAK,OAAO,QAAQ,OAAO,WAAW,UAAU,gDAAgD,8CACjG,CAAC;KACF,cAAc;KACd,aAAa;KACd,CACF;IACF,CAAC;AAGJ,OAAI,CAAC,gBACH,OAAM,KAAK,WAAW;IACpB,UAAU;IACV,MAAMA,kBAAK,QAAQ,MAAM,kBAAkB;IAC3C,SAAS,CACP;KACE,MAAM;KACN,kDAA2B,uCAAuC,CAAC;KACnE,cAAc;KACd,aAAa;KACd,CACF;IACF,CAAC;GAgBJ,MAAM,QAAQ,MAba,IAAII,qCAAmB,KAAK,OAAO,SAAS;IACrE,QAAQ,KAAK;IACb;IACA,eAAe,KAAK;IACpB,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb;IACA;IACA;IACA;IACA;IACD,CAAC,CAEqC,MAAM,GAAG,WAAW;AAC3D,SAAM,KAAK,WAAW,GAAG,MAAM;GAE/B,MAAM,cAAc,sCAAqB,KAAK,OAAO,OAAO;IAC1D,MAAM,OAAO,cAAc;IAC3B;IACA;IACA,MAAM,EACJ,WAAW,KAAK,OAAO,KACxB;IACD,QAAQ,KAAK;IACd,CAAC;AAEF,SAAM,KAAK,WAAW,GAAG,YAAY;;EAExC;EACD"}
1
+ {"version":3,"file":"index.cjs","names":["queryGenerator","suspenseQueryGenerator","infiniteQueryGenerator","suspenseInfiniteQueryGenerator","mutationGenerator","MutationKey","QueryKey","pluginOasName","pluginTsName","pluginZodName","path","options","groupName: Group['name']","pluginClientName","OperationGenerator"],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { definePlugin, type Group, getBarrelFiles, getMode } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { resolveModuleSource } from '@kubb/core/utils'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { MutationKey } from './components'\nimport { QueryKey } from './components/QueryKey.tsx'\nimport { infiniteQueryGenerator, mutationGenerator, queryGenerator, suspenseInfiniteQueryGenerator, suspenseQueryGenerator } from './generators'\nimport type { PluginReactQuery } from './types.ts'\n\nexport const pluginReactQueryName = 'plugin-react-query' satisfies PluginReactQuery['name']\n\nexport const pluginReactQuery = definePlugin<PluginReactQuery>((options) => {\n const {\n output = { path: 'hooks', barrelType: 'named' },\n group,\n exclude = [],\n include,\n override = [],\n parser = 'client',\n suspense = {},\n infinite = false,\n transformers = {},\n paramsType = 'inline',\n pathParamsType = paramsType === 'object' ? 'object' : options.pathParamsType || 'inline',\n generators = [queryGenerator, suspenseQueryGenerator, infiniteQueryGenerator, suspenseInfiniteQueryGenerator, mutationGenerator].filter(Boolean),\n mutation = {},\n query = {},\n mutationKey = MutationKey.getTransformer,\n queryKey = QueryKey.getTransformer,\n paramsCasing,\n contentType,\n client,\n } = options\n\n const clientName = client?.client ?? 'axios'\n const clientImportPath = client?.importPath ?? (!client?.bundle ? `@kubb/plugin-client/clients/${clientName}` : undefined)\n\n return {\n name: pluginReactQueryName,\n options: {\n output,\n client: {\n ...options.client,\n client: clientName,\n clientType: client?.clientType ?? 'function',\n dataReturnType: client?.dataReturnType ?? 'data',\n pathParamsType,\n importPath: clientImportPath,\n },\n infinite: infinite\n ? {\n queryParam: 'id',\n initialPageParam: 0,\n cursorParam: undefined,\n nextParam: undefined,\n previousParam: undefined,\n ...infinite,\n }\n : false,\n suspense,\n queryKey,\n query:\n query === false\n ? false\n : {\n methods: ['get'],\n importPath: '@tanstack/react-query',\n ...query,\n },\n mutationKey,\n mutation:\n mutation === false\n ? false\n : {\n methods: ['post', 'put', 'patch', 'delete'],\n importPath: '@tanstack/react-query',\n ...mutation,\n },\n paramsType,\n pathParamsType,\n parser,\n paramsCasing,\n group,\n },\n pre: [pluginOasName, pluginTsName, parser === 'zod' ? pluginZodName : undefined].filter(Boolean),\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? 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 if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n let resolvedName = camelCase(name)\n\n if (type === 'file' || type === 'function') {\n resolvedName = camelCase(name, {\n isFile: type === 'file',\n })\n }\n if (type === 'type') {\n resolvedName = pascalCase(name)\n }\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async install() {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n const oas = await this.getOas()\n const baseURL = await this.getBaseURL()\n\n if (baseURL) {\n this.plugin.options.client.baseURL = baseURL\n }\n\n const hasClientPlugin = !!this.pluginManager.getPluginByKey([pluginClientName])\n\n if (this.plugin.options.client.bundle && !hasClientPlugin && !this.plugin.options.client.importPath) {\n // pre add bundled fetch\n await this.upsertFile({\n baseName: 'fetch.ts',\n path: path.resolve(root, '.kubb/fetch.ts'),\n sources: [\n {\n name: 'fetch',\n value: resolveModuleSource(\n this.plugin.options.client.client === 'fetch' ? '@kubb/plugin-client/templates/clients/fetch' : '@kubb/plugin-client/templates/clients/axios',\n ).source,\n isExportable: true,\n isIndexable: true,\n },\n ],\n })\n }\n\n if (!hasClientPlugin) {\n await this.upsertFile({\n baseName: 'config.ts',\n path: path.resolve(root, '.kubb/config.ts'),\n sources: [\n {\n name: 'config',\n value: resolveModuleSource('@kubb/plugin-client/templates/config').source,\n isExportable: false,\n isIndexable: false,\n },\n ],\n })\n }\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n events: this.events,\n plugin: this.plugin,\n contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const files = await operationGenerator.build(...generators)\n await this.upsertFile(...files)\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":"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"}
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { n as Options, r as PluginReactQuery, s as UserPluginWithLifeCycle } from "./types-C3w5ACDw.cjs";
1
+ import { n as Options, r as PluginReactQuery, s as UserPluginWithLifeCycle } from "./types-Dr1tL-HG.cjs";
2
2
 
3
3
  //#region src/plugin.d.ts
4
4
  declare const pluginReactQueryName = "plugin-react-query";
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { n as Options, r as PluginReactQuery, s as UserPluginWithLifeCycle } from "./types-_A_KP2sO.js";
1
+ import { n as Options, r as PluginReactQuery, s as UserPluginWithLifeCycle } from "./types-D71Kn-Mk.js";
2
2
 
3
3
  //#region src/plugin.d.ts
4
4
  declare const pluginReactQueryName = "plugin-react-query";
package/dist/index.js CHANGED
@@ -128,7 +128,7 @@ const pluginReactQuery = definePlugin((options) => {
128
128
  fabric: this.fabric,
129
129
  oas,
130
130
  pluginManager: this.pluginManager,
131
- logger: this.logger,
131
+ events: this.events,
132
132
  plugin: this.plugin,
133
133
  contentType,
134
134
  exclude,
@@ -141,8 +141,7 @@ const pluginReactQuery = definePlugin((options) => {
141
141
  type: output.barrelType ?? "named",
142
142
  root,
143
143
  output,
144
- meta: { pluginKey: this.plugin.key },
145
- logger: this.logger
144
+ meta: { pluginKey: this.plugin.key }
146
145
  });
147
146
  await this.upsertFile(...barrelFiles);
148
147
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["options","groupName: Group['name']"],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { definePlugin, type Group, getBarrelFiles, getMode } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { resolveModuleSource } from '@kubb/core/utils'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { MutationKey } from './components'\nimport { QueryKey } from './components/QueryKey.tsx'\nimport { infiniteQueryGenerator, mutationGenerator, queryGenerator, suspenseInfiniteQueryGenerator, suspenseQueryGenerator } from './generators'\nimport type { PluginReactQuery } from './types.ts'\n\nexport const pluginReactQueryName = 'plugin-react-query' satisfies PluginReactQuery['name']\n\nexport const pluginReactQuery = definePlugin<PluginReactQuery>((options) => {\n const {\n output = { path: 'hooks', barrelType: 'named' },\n group,\n exclude = [],\n include,\n override = [],\n parser = 'client',\n suspense = {},\n infinite = false,\n transformers = {},\n paramsType = 'inline',\n pathParamsType = paramsType === 'object' ? 'object' : options.pathParamsType || 'inline',\n generators = [queryGenerator, suspenseQueryGenerator, infiniteQueryGenerator, suspenseInfiniteQueryGenerator, mutationGenerator].filter(Boolean),\n mutation = {},\n query = {},\n mutationKey = MutationKey.getTransformer,\n queryKey = QueryKey.getTransformer,\n paramsCasing,\n contentType,\n client,\n } = options\n\n const clientName = client?.client ?? 'axios'\n const clientImportPath = client?.importPath ?? (!client?.bundle ? `@kubb/plugin-client/clients/${clientName}` : undefined)\n\n return {\n name: pluginReactQueryName,\n options: {\n output,\n client: {\n ...options.client,\n client: clientName,\n clientType: client?.clientType ?? 'function',\n dataReturnType: client?.dataReturnType ?? 'data',\n pathParamsType,\n importPath: clientImportPath,\n },\n infinite: infinite\n ? {\n queryParam: 'id',\n initialPageParam: 0,\n cursorParam: undefined,\n nextParam: undefined,\n previousParam: undefined,\n ...infinite,\n }\n : false,\n suspense,\n queryKey,\n query:\n query === false\n ? false\n : {\n methods: ['get'],\n importPath: '@tanstack/react-query',\n ...query,\n },\n mutationKey,\n mutation:\n mutation === false\n ? false\n : {\n methods: ['post', 'put', 'patch', 'delete'],\n importPath: '@tanstack/react-query',\n ...mutation,\n },\n paramsType,\n pathParamsType,\n parser,\n paramsCasing,\n group,\n },\n pre: [pluginOasName, pluginTsName, parser === 'zod' ? pluginZodName : undefined].filter(Boolean),\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? 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 if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n let resolvedName = camelCase(name)\n\n if (type === 'file' || type === 'function') {\n resolvedName = camelCase(name, {\n isFile: type === 'file',\n })\n }\n if (type === 'type') {\n resolvedName = pascalCase(name)\n }\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async install() {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n const oas = await this.getOas()\n const baseURL = await this.getBaseURL()\n\n if (baseURL) {\n this.plugin.options.client.baseURL = baseURL\n }\n\n const hasClientPlugin = !!this.pluginManager.getPluginByKey([pluginClientName])\n\n if (this.plugin.options.client.bundle && !hasClientPlugin && !this.plugin.options.client.importPath) {\n // pre add bundled fetch\n await this.upsertFile({\n baseName: 'fetch.ts',\n path: path.resolve(root, '.kubb/fetch.ts'),\n sources: [\n {\n name: 'fetch',\n value: resolveModuleSource(\n this.plugin.options.client.client === 'fetch' ? '@kubb/plugin-client/templates/clients/fetch' : '@kubb/plugin-client/templates/clients/axios',\n ).source,\n isExportable: true,\n isIndexable: true,\n },\n ],\n })\n }\n\n if (!hasClientPlugin) {\n await this.upsertFile({\n baseName: 'config.ts',\n path: path.resolve(root, '.kubb/config.ts'),\n sources: [\n {\n name: 'config',\n value: resolveModuleSource('@kubb/plugin-client/templates/config').source,\n isExportable: false,\n isIndexable: false,\n },\n ],\n })\n }\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n logger: this.logger,\n plugin: this.plugin,\n contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const files = await operationGenerator.build(...generators)\n await this.upsertFile(...files)\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["options","groupName: Group['name']"],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { definePlugin, type Group, getBarrelFiles, getMode } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { resolveModuleSource } from '@kubb/core/utils'\nimport { pluginClientName } from '@kubb/plugin-client'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { MutationKey } from './components'\nimport { QueryKey } from './components/QueryKey.tsx'\nimport { infiniteQueryGenerator, mutationGenerator, queryGenerator, suspenseInfiniteQueryGenerator, suspenseQueryGenerator } from './generators'\nimport type { PluginReactQuery } from './types.ts'\n\nexport const pluginReactQueryName = 'plugin-react-query' satisfies PluginReactQuery['name']\n\nexport const pluginReactQuery = definePlugin<PluginReactQuery>((options) => {\n const {\n output = { path: 'hooks', barrelType: 'named' },\n group,\n exclude = [],\n include,\n override = [],\n parser = 'client',\n suspense = {},\n infinite = false,\n transformers = {},\n paramsType = 'inline',\n pathParamsType = paramsType === 'object' ? 'object' : options.pathParamsType || 'inline',\n generators = [queryGenerator, suspenseQueryGenerator, infiniteQueryGenerator, suspenseInfiniteQueryGenerator, mutationGenerator].filter(Boolean),\n mutation = {},\n query = {},\n mutationKey = MutationKey.getTransformer,\n queryKey = QueryKey.getTransformer,\n paramsCasing,\n contentType,\n client,\n } = options\n\n const clientName = client?.client ?? 'axios'\n const clientImportPath = client?.importPath ?? (!client?.bundle ? `@kubb/plugin-client/clients/${clientName}` : undefined)\n\n return {\n name: pluginReactQueryName,\n options: {\n output,\n client: {\n ...options.client,\n client: clientName,\n clientType: client?.clientType ?? 'function',\n dataReturnType: client?.dataReturnType ?? 'data',\n pathParamsType,\n importPath: clientImportPath,\n },\n infinite: infinite\n ? {\n queryParam: 'id',\n initialPageParam: 0,\n cursorParam: undefined,\n nextParam: undefined,\n previousParam: undefined,\n ...infinite,\n }\n : false,\n suspense,\n queryKey,\n query:\n query === false\n ? false\n : {\n methods: ['get'],\n importPath: '@tanstack/react-query',\n ...query,\n },\n mutationKey,\n mutation:\n mutation === false\n ? false\n : {\n methods: ['post', 'put', 'patch', 'delete'],\n importPath: '@tanstack/react-query',\n ...mutation,\n },\n paramsType,\n pathParamsType,\n parser,\n paramsCasing,\n group,\n },\n pre: [pluginOasName, pluginTsName, parser === 'zod' ? pluginZodName : undefined].filter(Boolean),\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? 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 if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n let resolvedName = camelCase(name)\n\n if (type === 'file' || type === 'function') {\n resolvedName = camelCase(name, {\n isFile: type === 'file',\n })\n }\n if (type === 'type') {\n resolvedName = pascalCase(name)\n }\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async install() {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n const oas = await this.getOas()\n const baseURL = await this.getBaseURL()\n\n if (baseURL) {\n this.plugin.options.client.baseURL = baseURL\n }\n\n const hasClientPlugin = !!this.pluginManager.getPluginByKey([pluginClientName])\n\n if (this.plugin.options.client.bundle && !hasClientPlugin && !this.plugin.options.client.importPath) {\n // pre add bundled fetch\n await this.upsertFile({\n baseName: 'fetch.ts',\n path: path.resolve(root, '.kubb/fetch.ts'),\n sources: [\n {\n name: 'fetch',\n value: resolveModuleSource(\n this.plugin.options.client.client === 'fetch' ? '@kubb/plugin-client/templates/clients/fetch' : '@kubb/plugin-client/templates/clients/axios',\n ).source,\n isExportable: true,\n isIndexable: true,\n },\n ],\n })\n }\n\n if (!hasClientPlugin) {\n await this.upsertFile({\n baseName: 'config.ts',\n path: path.resolve(root, '.kubb/config.ts'),\n sources: [\n {\n name: 'config',\n value: resolveModuleSource('@kubb/plugin-client/templates/config').source,\n isExportable: false,\n isIndexable: false,\n },\n ],\n })\n }\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n events: this.events,\n plugin: this.plugin,\n contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const files = await operationGenerator.build(...generators)\n await this.upsertFile(...files)\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Fabric } from "@kubb/react-fabric";
1
2
  import * as OasTypes from "oas/types";
2
3
  import { HttpMethods as HttpMethod, OASDocument, SchemaObject, User } from "oas/types";
3
4
  import { Operation, Operation as Operation$1 } from "oas/operation";
@@ -5,8 +6,6 @@ import { OpenAPIV3 } from "openapi-types";
5
6
  import * as oas_normalize_lib_types0 from "oas-normalize/lib/types";
6
7
  import BaseOas from "oas";
7
8
  import { KubbFile } from "@kubb/fabric-core/types";
8
- import { Fabric } from "@kubb/react-fabric";
9
- import { ConsolaInstance, LogLevel } from "consola";
10
9
  import { KubbNode } from "@kubb/react-fabric/types";
11
10
 
12
11
  //#region ../oas/src/types.d.ts
@@ -58,75 +57,229 @@ declare abstract class BaseGenerator<TOptions = unknown, TContext = unknown> {
58
57
  abstract build(...params: unknown[]): unknown;
59
58
  }
60
59
  //#endregion
61
- //#region ../core/src/utils/EventEmitter.d.ts
62
- declare class EventEmitter<TEvents extends Record<string, any>> {
63
- #private;
64
- constructor();
65
- emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArg: TEvents[TEventName]): void;
66
- on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
67
- off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
68
- removeAll(): void;
69
- }
70
- //#endregion
71
- //#region ../core/src/logger.d.ts
60
+ //#region ../core/src/Kubb.d.ts
72
61
  type DebugEvent = {
73
62
  date: Date;
74
63
  logs: string[];
75
64
  fileName?: string;
65
+ };
66
+ type ProgressStartMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
67
+ hookName: H;
68
+ plugins: Array<Plugin>;
69
+ };
70
+ type ProgressStopMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
71
+ hookName: H;
72
+ };
73
+ type ExecutingMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
74
+ strategy: Strategy;
75
+ hookName: H;
76
+ plugin: Plugin;
77
+ parameters?: unknown[] | undefined;
78
+ output?: unknown;
79
+ };
80
+ type ExecutedMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
81
+ duration: number;
82
+ strategy: Strategy;
83
+ hookName: H;
84
+ plugin: Plugin;
85
+ parameters?: unknown[] | undefined;
86
+ output?: unknown;
87
+ };
88
+ /**
89
+ * Events emitted during the Kubb code generation lifecycle.
90
+ * These events can be listened to for logging, progress tracking, and custom integrations.
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * import type { AsyncEventEmitter } from '@kubb/core'
95
+ * import type { KubbEvents } from '@kubb/core'
96
+ *
97
+ * const events: AsyncEventEmitter<KubbEvents> = new AsyncEventEmitter()
98
+ *
99
+ * events.on('lifecycle:start', () => {
100
+ * console.log('Starting Kubb generation')
101
+ * })
102
+ *
103
+ * events.on('plugin:end', (plugin, duration) => {
104
+ * console.log(`Plugin ${plugin.name} completed in ${duration}ms`)
105
+ * })
106
+ * ```
107
+ */
108
+ interface KubbEvents {
76
109
  /**
77
- * Category of the debug log, used for GitHub Actions grouping
78
- * - 'setup': Initial configuration and environment setup
79
- * - 'plugin': Plugin installation and execution
80
- * - 'hook': Plugin hook execution details
81
- * - 'schema': Schema parsing and generation
82
- * - 'file': File operations (read/write/generate)
83
- * - 'error': Error details and stack traces
84
- * - undefined: Generic logs (always inline)
110
+ * Emitted at the beginning of the Kubb lifecycle, before any code generation starts.
85
111
  */
86
- category?: 'setup' | 'plugin' | 'hook' | 'schema' | 'file' | 'error';
112
+ 'lifecycle:start': [version: string];
87
113
  /**
88
- * Plugin name for grouping plugin-specific logs together
114
+ * Emitted at the end of the Kubb lifecycle, after all code generation is complete.
89
115
  */
90
- pluginName?: string;
116
+ 'lifecycle:end': [];
91
117
  /**
92
- * Indicates if this is the start or end of a plugin's execution
93
- * - 'start': Start of plugin execution group
94
- * - 'end': End of plugin execution group
118
+ * Emitted when configuration loading starts.
95
119
  */
96
- pluginGroupMarker?: 'start' | 'end';
97
- };
98
- type Events$1 = {
99
- start: [message: string];
100
- success: [message: string];
101
- error: [message: string, error: Error];
102
- warning: [message: string];
103
- debug: [DebugEvent];
104
- verbose: [DebugEvent];
105
- info: [message: string];
106
- progress_start: [{
107
- id: string;
108
- size: number;
109
- message?: string;
110
- }];
111
- progressed: [{
112
- id: string;
113
- message?: string;
120
+ 'config:start': [];
121
+ /**
122
+ * Emitted when configuration loading is complete.
123
+ */
124
+ 'config:end': [configs: Array<Config>];
125
+ /**
126
+ * Emitted when code generation phase starts.
127
+ */
128
+ 'generation:start': [config: Config];
129
+ /**
130
+ * Emitted when code generation phase completes.
131
+ */
132
+ 'generation:end': [Config: Config];
133
+ /**
134
+ * Emitted with a summary of the generation results.
135
+ * Contains summary lines, title, and success status.
136
+ */
137
+ 'generation:summary': [Config: Config, {
138
+ failedPlugins: Set<{
139
+ plugin: Plugin;
140
+ error: Error;
141
+ }>;
142
+ status: 'success' | 'failed';
143
+ hrStart: [number, number];
144
+ filesCreated: number;
145
+ pluginTimings?: Map<string, number>;
114
146
  }];
115
- progress_stop: [{
116
- id: string;
147
+ /**
148
+ * Emitted when code formatting starts (e.g., running Biome or Prettier).
149
+ */
150
+ 'format:start': [];
151
+ /**
152
+ * Emitted when code formatting completes.
153
+ */
154
+ 'format:end': [];
155
+ /**
156
+ * Emitted when linting starts.
157
+ */
158
+ 'lint:start': [];
159
+ /**
160
+ * Emitted when linting completes.
161
+ */
162
+ 'lint:end': [];
163
+ /**
164
+ * Emitted when plugin hooks execution starts.
165
+ */
166
+ 'hooks:start': [];
167
+ /**
168
+ * Emitted when plugin hooks execution completes.
169
+ */
170
+ 'hooks:end': [];
171
+ /**
172
+ * Emitted when a single hook execution starts.
173
+ */
174
+ 'hook:start': [command: string];
175
+ /**
176
+ * Emitted to execute a hook command (e.g., format or lint).
177
+ * The callback should be invoked when the command completes.
178
+ */
179
+ 'hook:execute': [{
180
+ command: string | URL;
181
+ args?: readonly string[];
182
+ }, cb: () => void];
183
+ /**
184
+ * Emitted when a single hook execution completes.
185
+ */
186
+ 'hook:end': [command: string];
187
+ /**
188
+ * Emitted when a new version of Kubb is available.
189
+ */
190
+ 'version:new': [currentVersion: string, latestVersion: string];
191
+ /**
192
+ * Informational message event.
193
+ */
194
+ info: [message: string, info?: string];
195
+ /**
196
+ * Error event. Emitted when an error occurs during code generation.
197
+ */
198
+ error: [error: Error, meta?: Record<string, unknown>];
199
+ /**
200
+ * Success message event.
201
+ */
202
+ success: [message: string, info?: string];
203
+ /**
204
+ * Warning message event.
205
+ */
206
+ warn: [message: string, info?: string];
207
+ /**
208
+ * Debug event for detailed logging.
209
+ * Contains timestamp, log messages, and optional filename.
210
+ */
211
+ debug: [meta: DebugEvent];
212
+ /**
213
+ * Emitted when file processing starts.
214
+ * Contains the list of files to be processed.
215
+ */
216
+ 'files:processing:start': [files: Array<KubbFile.ResolvedFile>];
217
+ /**
218
+ * Emitted for each file being processed, providing progress updates.
219
+ * Contains processed count, total count, percentage, and file details.
220
+ */
221
+ 'file:processing:update': [{
222
+ /** Number of files processed so far */
223
+ processed: number;
224
+ /** Total number of files to process */
225
+ total: number;
226
+ /** Processing percentage (0-100) */
227
+ percentage: number;
228
+ /** Optional source identifier */
229
+ source?: string;
230
+ /** The file being processed */
231
+ file: KubbFile.ResolvedFile;
232
+ /**
233
+ * Kubb configuration (not present in Fabric).
234
+ * Provides access to the current config during file processing.
235
+ */
236
+ config: Config;
117
237
  }];
118
- };
119
- type Logger = {
120
238
  /**
121
- * Optional config name to show in CLI output
239
+ * Emitted when file processing completes.
240
+ * Contains the list of processed files.
122
241
  */
123
- name?: string;
124
- logLevel: LogLevel;
125
- consola?: ConsolaInstance;
126
- on: EventEmitter<Events$1>['on'];
127
- emit: EventEmitter<Events$1>['emit'];
128
- writeLogs: () => Promise<void>;
129
- };
242
+ 'files:processing:end': [files: KubbFile.ResolvedFile[]];
243
+ /**
244
+ * Emitted when a plugin starts executing.
245
+ */
246
+ 'plugin:start': [plugin: Plugin];
247
+ /**
248
+ * Emitted when a plugin completes execution.
249
+ */
250
+ 'plugin:end': [plugin: Plugin, duration: number];
251
+ /**
252
+ * Emitted when plugin hook progress tracking starts.
253
+ * Contains the hook name and list of plugins to execute.
254
+ */
255
+ 'plugins:hook:progress:start': [meta: ProgressStartMeta];
256
+ /**
257
+ * Emitted when plugin hook progress tracking ends.
258
+ * Contains the hook name that completed.
259
+ */
260
+ 'plugins:hook:progress:end': [meta: ProgressStopMeta];
261
+ /**
262
+ * Emitted when a plugin hook starts processing.
263
+ * Contains strategy, hook name, plugin, parameters, and output.
264
+ */
265
+ 'plugins:hook:processing:start': [meta: ExecutingMeta];
266
+ /**
267
+ * Emitted when a plugin hook completes processing.
268
+ * Contains duration, strategy, hook name, plugin, parameters, and output.
269
+ */
270
+ 'plugins:hook:processing:end': [meta: ExecutedMeta];
271
+ }
272
+ //#endregion
273
+ //#region ../core/src/utils/AsyncEventEmitter.d.ts
274
+ declare class AsyncEventEmitter<TEvents extends Record<string, any>> {
275
+ #private;
276
+ constructor(maxListener?: number);
277
+ emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArgs: TEvents[TEventName]): Promise<void>;
278
+ on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
279
+ onOnce<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArgs: TEvents[TEventName]) => void): void;
280
+ off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
281
+ removeAll(): void;
282
+ }
130
283
  //#endregion
131
284
  //#region ../core/src/utils/types.d.ts
132
285
  type PossiblePromise<T> = Promise<T> | T;
@@ -390,7 +543,7 @@ type PluginContext<TOptions extends PluginFactoryOptions = PluginFactoryOptions>
390
543
  * merging multiple sources into the same output file
391
544
  */
392
545
  upsertFile: (...file: Array<KubbFile.File>) => Promise<void>;
393
- logger: Logger;
546
+ events: AsyncEventEmitter<KubbEvents>;
394
547
  mode: KubbFile.Mode;
395
548
  /**
396
549
  * Current plugin
@@ -436,35 +589,6 @@ type Group = {
436
589
  //#region ../core/src/PluginManager.d.ts
437
590
  type RequiredPluginLifecycle = Required<PluginLifecycle>;
438
591
  type Strategy = 'hookFirst' | 'hookForPlugin' | 'hookParallel' | 'hookSeq';
439
- type ExecutingMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
440
- strategy: Strategy;
441
- hookName: H;
442
- plugin: Plugin;
443
- parameters?: unknown[] | undefined;
444
- output?: unknown;
445
- };
446
- type ExecutedMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
447
- duration: number;
448
- strategy: Strategy;
449
- hookName: H;
450
- plugin: Plugin;
451
- parameters?: unknown[] | undefined;
452
- output?: unknown;
453
- };
454
- type ErrorMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
455
- hookName: H;
456
- duration: number;
457
- strategy: Strategy;
458
- parameters?: unknown[] | undefined;
459
- plugin: Plugin;
460
- };
461
- type ProgressStartMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
462
- hookName: H;
463
- plugins: Array<Plugin>;
464
- };
465
- type ProgressStopMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
466
- hookName: H;
467
- };
468
592
  type ParseResult<H extends PluginLifecycleHooks> = RequiredPluginLifecycle[H];
469
593
  type SafeParseResult<H extends PluginLifecycleHooks, Result = ReturnType<ParseResult<H>>> = {
470
594
  result: Result;
@@ -472,19 +596,12 @@ type SafeParseResult<H extends PluginLifecycleHooks, Result = ReturnType<ParseRe
472
596
  };
473
597
  type Options$2 = {
474
598
  fabric: Fabric;
475
- logger: Logger;
599
+ events: AsyncEventEmitter<KubbEvents>;
476
600
  /**
477
601
  * @default Number.POSITIVE_INFINITY
478
602
  */
479
603
  concurrency?: number;
480
604
  };
481
- type Events = {
482
- progress_start: [meta: ProgressStartMeta];
483
- progress_stop: [meta: ProgressStopMeta];
484
- executing: [meta: ExecutingMeta];
485
- executed: [meta: ExecutedMeta];
486
- error: [error: Error, meta: ErrorMeta];
487
- };
488
605
  type GetFileProps<TOptions = object> = {
489
606
  name: string;
490
607
  mode?: KubbFile.Mode;
@@ -494,10 +611,10 @@ type GetFileProps<TOptions = object> = {
494
611
  };
495
612
  declare class PluginManager {
496
613
  #private;
497
- readonly events: EventEmitter<Events>;
498
614
  readonly config: Config;
499
615
  readonly options: Options$2;
500
616
  constructor(config: Config, options: Options$2);
617
+ get events(): AsyncEventEmitter<KubbEvents>;
501
618
  getContext<TOptions extends PluginFactoryOptions>(plugin: Plugin<TOptions>): PluginContext<TOptions> & Record<string, any>;
502
619
  get plugins(): Array<Plugin>;
503
620
  getFile<TOptions = object>({
@@ -511,10 +628,6 @@ declare class PluginManager {
511
628
  }>;
512
629
  resolvePath: <TOptions = object>(params: ResolvePathParams<TOptions>) => KubbFile.Path;
513
630
  resolveName: (params: ResolveNameParams) => string;
514
- /**
515
- * Instead of calling `pluginManager.events.on` you can use `pluginManager.on`. This one also has better types.
516
- */
517
- on<TEventName extends keyof Events & string>(eventName: TEventName, handler: (...eventArg: Events[TEventName]) => void): void;
518
631
  /**
519
632
  * Run a specific hookName for plugin x.
520
633
  */
@@ -698,7 +811,7 @@ type Context$1<TOptions, TPluginOptions extends PluginFactoryOptions> = {
698
811
  override: Array<Override<TOptions>> | undefined;
699
812
  contentType: contentType | undefined;
700
813
  pluginManager: PluginManager;
701
- logger?: Logger;
814
+ events?: AsyncEventEmitter<KubbEvents>;
702
815
  /**
703
816
  * Current plugin
704
817
  */
@@ -942,7 +1055,7 @@ type Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {
942
1055
  fabric: Fabric;
943
1056
  oas: Oas;
944
1057
  pluginManager: PluginManager;
945
- logger?: Logger;
1058
+ events?: AsyncEventEmitter<KubbEvents>;
946
1059
  /**
947
1060
  * Current plugin
948
1061
  */
@@ -1344,4 +1457,4 @@ type ResolvedOptions = {
1344
1457
  type PluginReactQuery = PluginFactoryOptions<'plugin-react-query', Options, ResolvedOptions, never, ResolvePathOptions>;
1345
1458
  //#endregion
1346
1459
  export { ReactGenerator as a, Operation$1 as c, Transformer as i, Options as n, OperationSchemas as o, PluginReactQuery as r, UserPluginWithLifeCycle as s, Infinite as t };
1347
- //# sourceMappingURL=types-C3w5ACDw.d.cts.map
1460
+ //# sourceMappingURL=types-D71Kn-Mk.d.ts.map
@@ -1,4 +1,3 @@
1
- import { Fabric } from "@kubb/react-fabric";
2
1
  import * as OasTypes from "oas/types";
3
2
  import { HttpMethods as HttpMethod, OASDocument, SchemaObject, User } from "oas/types";
4
3
  import { Operation, Operation as Operation$1 } from "oas/operation";
@@ -6,7 +5,7 @@ import { OpenAPIV3 } from "openapi-types";
6
5
  import * as oas_normalize_lib_types0 from "oas-normalize/lib/types";
7
6
  import BaseOas from "oas";
8
7
  import { KubbFile } from "@kubb/fabric-core/types";
9
- import { ConsolaInstance, LogLevel } from "consola";
8
+ import { Fabric } from "@kubb/react-fabric";
10
9
  import { KubbNode } from "@kubb/react-fabric/types";
11
10
 
12
11
  //#region ../oas/src/types.d.ts
@@ -58,75 +57,229 @@ declare abstract class BaseGenerator<TOptions = unknown, TContext = unknown> {
58
57
  abstract build(...params: unknown[]): unknown;
59
58
  }
60
59
  //#endregion
61
- //#region ../core/src/utils/EventEmitter.d.ts
62
- declare class EventEmitter<TEvents extends Record<string, any>> {
63
- #private;
64
- constructor();
65
- emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArg: TEvents[TEventName]): void;
66
- on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
67
- off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
68
- removeAll(): void;
69
- }
70
- //#endregion
71
- //#region ../core/src/logger.d.ts
60
+ //#region ../core/src/Kubb.d.ts
72
61
  type DebugEvent = {
73
62
  date: Date;
74
63
  logs: string[];
75
64
  fileName?: string;
65
+ };
66
+ type ProgressStartMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
67
+ hookName: H;
68
+ plugins: Array<Plugin>;
69
+ };
70
+ type ProgressStopMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
71
+ hookName: H;
72
+ };
73
+ type ExecutingMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
74
+ strategy: Strategy;
75
+ hookName: H;
76
+ plugin: Plugin;
77
+ parameters?: unknown[] | undefined;
78
+ output?: unknown;
79
+ };
80
+ type ExecutedMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
81
+ duration: number;
82
+ strategy: Strategy;
83
+ hookName: H;
84
+ plugin: Plugin;
85
+ parameters?: unknown[] | undefined;
86
+ output?: unknown;
87
+ };
88
+ /**
89
+ * Events emitted during the Kubb code generation lifecycle.
90
+ * These events can be listened to for logging, progress tracking, and custom integrations.
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * import type { AsyncEventEmitter } from '@kubb/core'
95
+ * import type { KubbEvents } from '@kubb/core'
96
+ *
97
+ * const events: AsyncEventEmitter<KubbEvents> = new AsyncEventEmitter()
98
+ *
99
+ * events.on('lifecycle:start', () => {
100
+ * console.log('Starting Kubb generation')
101
+ * })
102
+ *
103
+ * events.on('plugin:end', (plugin, duration) => {
104
+ * console.log(`Plugin ${plugin.name} completed in ${duration}ms`)
105
+ * })
106
+ * ```
107
+ */
108
+ interface KubbEvents {
76
109
  /**
77
- * Category of the debug log, used for GitHub Actions grouping
78
- * - 'setup': Initial configuration and environment setup
79
- * - 'plugin': Plugin installation and execution
80
- * - 'hook': Plugin hook execution details
81
- * - 'schema': Schema parsing and generation
82
- * - 'file': File operations (read/write/generate)
83
- * - 'error': Error details and stack traces
84
- * - undefined: Generic logs (always inline)
110
+ * Emitted at the beginning of the Kubb lifecycle, before any code generation starts.
85
111
  */
86
- category?: 'setup' | 'plugin' | 'hook' | 'schema' | 'file' | 'error';
112
+ 'lifecycle:start': [version: string];
87
113
  /**
88
- * Plugin name for grouping plugin-specific logs together
114
+ * Emitted at the end of the Kubb lifecycle, after all code generation is complete.
89
115
  */
90
- pluginName?: string;
116
+ 'lifecycle:end': [];
91
117
  /**
92
- * Indicates if this is the start or end of a plugin's execution
93
- * - 'start': Start of plugin execution group
94
- * - 'end': End of plugin execution group
118
+ * Emitted when configuration loading starts.
95
119
  */
96
- pluginGroupMarker?: 'start' | 'end';
97
- };
98
- type Events$1 = {
99
- start: [message: string];
100
- success: [message: string];
101
- error: [message: string, error: Error];
102
- warning: [message: string];
103
- debug: [DebugEvent];
104
- verbose: [DebugEvent];
105
- info: [message: string];
106
- progress_start: [{
107
- id: string;
108
- size: number;
109
- message?: string;
110
- }];
111
- progressed: [{
112
- id: string;
113
- message?: string;
120
+ 'config:start': [];
121
+ /**
122
+ * Emitted when configuration loading is complete.
123
+ */
124
+ 'config:end': [configs: Array<Config>];
125
+ /**
126
+ * Emitted when code generation phase starts.
127
+ */
128
+ 'generation:start': [config: Config];
129
+ /**
130
+ * Emitted when code generation phase completes.
131
+ */
132
+ 'generation:end': [Config: Config];
133
+ /**
134
+ * Emitted with a summary of the generation results.
135
+ * Contains summary lines, title, and success status.
136
+ */
137
+ 'generation:summary': [Config: Config, {
138
+ failedPlugins: Set<{
139
+ plugin: Plugin;
140
+ error: Error;
141
+ }>;
142
+ status: 'success' | 'failed';
143
+ hrStart: [number, number];
144
+ filesCreated: number;
145
+ pluginTimings?: Map<string, number>;
114
146
  }];
115
- progress_stop: [{
116
- id: string;
147
+ /**
148
+ * Emitted when code formatting starts (e.g., running Biome or Prettier).
149
+ */
150
+ 'format:start': [];
151
+ /**
152
+ * Emitted when code formatting completes.
153
+ */
154
+ 'format:end': [];
155
+ /**
156
+ * Emitted when linting starts.
157
+ */
158
+ 'lint:start': [];
159
+ /**
160
+ * Emitted when linting completes.
161
+ */
162
+ 'lint:end': [];
163
+ /**
164
+ * Emitted when plugin hooks execution starts.
165
+ */
166
+ 'hooks:start': [];
167
+ /**
168
+ * Emitted when plugin hooks execution completes.
169
+ */
170
+ 'hooks:end': [];
171
+ /**
172
+ * Emitted when a single hook execution starts.
173
+ */
174
+ 'hook:start': [command: string];
175
+ /**
176
+ * Emitted to execute a hook command (e.g., format or lint).
177
+ * The callback should be invoked when the command completes.
178
+ */
179
+ 'hook:execute': [{
180
+ command: string | URL;
181
+ args?: readonly string[];
182
+ }, cb: () => void];
183
+ /**
184
+ * Emitted when a single hook execution completes.
185
+ */
186
+ 'hook:end': [command: string];
187
+ /**
188
+ * Emitted when a new version of Kubb is available.
189
+ */
190
+ 'version:new': [currentVersion: string, latestVersion: string];
191
+ /**
192
+ * Informational message event.
193
+ */
194
+ info: [message: string, info?: string];
195
+ /**
196
+ * Error event. Emitted when an error occurs during code generation.
197
+ */
198
+ error: [error: Error, meta?: Record<string, unknown>];
199
+ /**
200
+ * Success message event.
201
+ */
202
+ success: [message: string, info?: string];
203
+ /**
204
+ * Warning message event.
205
+ */
206
+ warn: [message: string, info?: string];
207
+ /**
208
+ * Debug event for detailed logging.
209
+ * Contains timestamp, log messages, and optional filename.
210
+ */
211
+ debug: [meta: DebugEvent];
212
+ /**
213
+ * Emitted when file processing starts.
214
+ * Contains the list of files to be processed.
215
+ */
216
+ 'files:processing:start': [files: Array<KubbFile.ResolvedFile>];
217
+ /**
218
+ * Emitted for each file being processed, providing progress updates.
219
+ * Contains processed count, total count, percentage, and file details.
220
+ */
221
+ 'file:processing:update': [{
222
+ /** Number of files processed so far */
223
+ processed: number;
224
+ /** Total number of files to process */
225
+ total: number;
226
+ /** Processing percentage (0-100) */
227
+ percentage: number;
228
+ /** Optional source identifier */
229
+ source?: string;
230
+ /** The file being processed */
231
+ file: KubbFile.ResolvedFile;
232
+ /**
233
+ * Kubb configuration (not present in Fabric).
234
+ * Provides access to the current config during file processing.
235
+ */
236
+ config: Config;
117
237
  }];
118
- };
119
- type Logger = {
120
238
  /**
121
- * Optional config name to show in CLI output
239
+ * Emitted when file processing completes.
240
+ * Contains the list of processed files.
122
241
  */
123
- name?: string;
124
- logLevel: LogLevel;
125
- consola?: ConsolaInstance;
126
- on: EventEmitter<Events$1>['on'];
127
- emit: EventEmitter<Events$1>['emit'];
128
- writeLogs: () => Promise<void>;
129
- };
242
+ 'files:processing:end': [files: KubbFile.ResolvedFile[]];
243
+ /**
244
+ * Emitted when a plugin starts executing.
245
+ */
246
+ 'plugin:start': [plugin: Plugin];
247
+ /**
248
+ * Emitted when a plugin completes execution.
249
+ */
250
+ 'plugin:end': [plugin: Plugin, duration: number];
251
+ /**
252
+ * Emitted when plugin hook progress tracking starts.
253
+ * Contains the hook name and list of plugins to execute.
254
+ */
255
+ 'plugins:hook:progress:start': [meta: ProgressStartMeta];
256
+ /**
257
+ * Emitted when plugin hook progress tracking ends.
258
+ * Contains the hook name that completed.
259
+ */
260
+ 'plugins:hook:progress:end': [meta: ProgressStopMeta];
261
+ /**
262
+ * Emitted when a plugin hook starts processing.
263
+ * Contains strategy, hook name, plugin, parameters, and output.
264
+ */
265
+ 'plugins:hook:processing:start': [meta: ExecutingMeta];
266
+ /**
267
+ * Emitted when a plugin hook completes processing.
268
+ * Contains duration, strategy, hook name, plugin, parameters, and output.
269
+ */
270
+ 'plugins:hook:processing:end': [meta: ExecutedMeta];
271
+ }
272
+ //#endregion
273
+ //#region ../core/src/utils/AsyncEventEmitter.d.ts
274
+ declare class AsyncEventEmitter<TEvents extends Record<string, any>> {
275
+ #private;
276
+ constructor(maxListener?: number);
277
+ emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArgs: TEvents[TEventName]): Promise<void>;
278
+ on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
279
+ onOnce<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArgs: TEvents[TEventName]) => void): void;
280
+ off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void;
281
+ removeAll(): void;
282
+ }
130
283
  //#endregion
131
284
  //#region ../core/src/utils/types.d.ts
132
285
  type PossiblePromise<T> = Promise<T> | T;
@@ -390,7 +543,7 @@ type PluginContext<TOptions extends PluginFactoryOptions = PluginFactoryOptions>
390
543
  * merging multiple sources into the same output file
391
544
  */
392
545
  upsertFile: (...file: Array<KubbFile.File>) => Promise<void>;
393
- logger: Logger;
546
+ events: AsyncEventEmitter<KubbEvents>;
394
547
  mode: KubbFile.Mode;
395
548
  /**
396
549
  * Current plugin
@@ -436,35 +589,6 @@ type Group = {
436
589
  //#region ../core/src/PluginManager.d.ts
437
590
  type RequiredPluginLifecycle = Required<PluginLifecycle>;
438
591
  type Strategy = 'hookFirst' | 'hookForPlugin' | 'hookParallel' | 'hookSeq';
439
- type ExecutingMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
440
- strategy: Strategy;
441
- hookName: H;
442
- plugin: Plugin;
443
- parameters?: unknown[] | undefined;
444
- output?: unknown;
445
- };
446
- type ExecutedMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
447
- duration: number;
448
- strategy: Strategy;
449
- hookName: H;
450
- plugin: Plugin;
451
- parameters?: unknown[] | undefined;
452
- output?: unknown;
453
- };
454
- type ErrorMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
455
- hookName: H;
456
- duration: number;
457
- strategy: Strategy;
458
- parameters?: unknown[] | undefined;
459
- plugin: Plugin;
460
- };
461
- type ProgressStartMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
462
- hookName: H;
463
- plugins: Array<Plugin>;
464
- };
465
- type ProgressStopMeta<H extends PluginLifecycleHooks = PluginLifecycleHooks> = {
466
- hookName: H;
467
- };
468
592
  type ParseResult<H extends PluginLifecycleHooks> = RequiredPluginLifecycle[H];
469
593
  type SafeParseResult<H extends PluginLifecycleHooks, Result = ReturnType<ParseResult<H>>> = {
470
594
  result: Result;
@@ -472,19 +596,12 @@ type SafeParseResult<H extends PluginLifecycleHooks, Result = ReturnType<ParseRe
472
596
  };
473
597
  type Options$2 = {
474
598
  fabric: Fabric;
475
- logger: Logger;
599
+ events: AsyncEventEmitter<KubbEvents>;
476
600
  /**
477
601
  * @default Number.POSITIVE_INFINITY
478
602
  */
479
603
  concurrency?: number;
480
604
  };
481
- type Events = {
482
- progress_start: [meta: ProgressStartMeta];
483
- progress_stop: [meta: ProgressStopMeta];
484
- executing: [meta: ExecutingMeta];
485
- executed: [meta: ExecutedMeta];
486
- error: [error: Error, meta: ErrorMeta];
487
- };
488
605
  type GetFileProps<TOptions = object> = {
489
606
  name: string;
490
607
  mode?: KubbFile.Mode;
@@ -494,10 +611,10 @@ type GetFileProps<TOptions = object> = {
494
611
  };
495
612
  declare class PluginManager {
496
613
  #private;
497
- readonly events: EventEmitter<Events>;
498
614
  readonly config: Config;
499
615
  readonly options: Options$2;
500
616
  constructor(config: Config, options: Options$2);
617
+ get events(): AsyncEventEmitter<KubbEvents>;
501
618
  getContext<TOptions extends PluginFactoryOptions>(plugin: Plugin<TOptions>): PluginContext<TOptions> & Record<string, any>;
502
619
  get plugins(): Array<Plugin>;
503
620
  getFile<TOptions = object>({
@@ -511,10 +628,6 @@ declare class PluginManager {
511
628
  }>;
512
629
  resolvePath: <TOptions = object>(params: ResolvePathParams<TOptions>) => KubbFile.Path;
513
630
  resolveName: (params: ResolveNameParams) => string;
514
- /**
515
- * Instead of calling `pluginManager.events.on` you can use `pluginManager.on`. This one also has better types.
516
- */
517
- on<TEventName extends keyof Events & string>(eventName: TEventName, handler: (...eventArg: Events[TEventName]) => void): void;
518
631
  /**
519
632
  * Run a specific hookName for plugin x.
520
633
  */
@@ -698,7 +811,7 @@ type Context$1<TOptions, TPluginOptions extends PluginFactoryOptions> = {
698
811
  override: Array<Override<TOptions>> | undefined;
699
812
  contentType: contentType | undefined;
700
813
  pluginManager: PluginManager;
701
- logger?: Logger;
814
+ events?: AsyncEventEmitter<KubbEvents>;
702
815
  /**
703
816
  * Current plugin
704
817
  */
@@ -942,7 +1055,7 @@ type Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {
942
1055
  fabric: Fabric;
943
1056
  oas: Oas;
944
1057
  pluginManager: PluginManager;
945
- logger?: Logger;
1058
+ events?: AsyncEventEmitter<KubbEvents>;
946
1059
  /**
947
1060
  * Current plugin
948
1061
  */
@@ -1344,4 +1457,4 @@ type ResolvedOptions = {
1344
1457
  type PluginReactQuery = PluginFactoryOptions<'plugin-react-query', Options, ResolvedOptions, never, ResolvePathOptions>;
1345
1458
  //#endregion
1346
1459
  export { ReactGenerator as a, Operation$1 as c, Transformer as i, Options as n, OperationSchemas as o, PluginReactQuery as r, UserPluginWithLifeCycle as s, Infinite as t };
1347
- //# sourceMappingURL=types-_A_KP2sO.d.ts.map
1460
+ //# sourceMappingURL=types-Dr1tL-HG.d.cts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/plugin-react-query",
3
- "version": "4.11.3",
3
+ "version": "4.12.1",
4
4
  "description": "React Query hooks generator plugin for Kubb, creating type-safe API client hooks from OpenAPI specifications for React applications.",
5
5
  "keywords": [
6
6
  "react-query",
@@ -67,17 +67,17 @@
67
67
  }
68
68
  ],
69
69
  "dependencies": {
70
- "@kubb/react-fabric": "0.5.4",
70
+ "@kubb/react-fabric": "0.7.0",
71
71
  "remeda": "^2.32.0",
72
- "@kubb/core": "4.11.3",
73
- "@kubb/oas": "4.11.3",
74
- "@kubb/plugin-client": "4.11.3",
75
- "@kubb/plugin-oas": "4.11.3",
76
- "@kubb/plugin-ts": "4.11.3",
77
- "@kubb/plugin-zod": "4.11.3"
72
+ "@kubb/core": "4.12.1",
73
+ "@kubb/oas": "4.12.1",
74
+ "@kubb/plugin-client": "4.12.1",
75
+ "@kubb/plugin-oas": "4.12.1",
76
+ "@kubb/plugin-ts": "4.12.1",
77
+ "@kubb/plugin-zod": "4.12.1"
78
78
  },
79
79
  "peerDependencies": {
80
- "@kubb/react-fabric": "0.5.4"
80
+ "@kubb/react-fabric": "0.7.0"
81
81
  },
82
82
  "engines": {
83
83
  "node": ">=20"
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch'
6
+ import type { QueryKey, QueryClient, QueryObserverOptions, UseQueryResult } from '@tanstack/react-query'
7
+ import { fetch } from './test/.kubb/fetch'
8
+ import { queryOptions, useQuery } from '@tanstack/react-query'
9
+
10
+ export const findPetsByTagsQueryKey = (params?: FindPetsByTagsQueryParams) => [{ url: '/pet/findByTags' }, ...(params ? [params] : [])] as const
11
+
12
+ export type FindPetsByTagsQueryKey = ReturnType<typeof findPetsByTagsQueryKey>
13
+
14
+ /**
15
+ * @description Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
16
+ * @summary Finds Pets by tags
17
+ * {@link /pet/findByTags}
18
+ */
19
+ export async function findPetsByTags(
20
+ headers: FindPetsByTagsHeaderParams,
21
+ params?: FindPetsByTagsQueryParams,
22
+ config: Partial<RequestConfig> & { client?: typeof fetch } = {},
23
+ ) {
24
+ const { client: request = fetch, ...requestConfig } = config
25
+
26
+ const res = await request<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, unknown>({
27
+ method: 'GET',
28
+ url: `/pet/findByTags`,
29
+ baseURL: `${123456}`,
30
+ params,
31
+ ...requestConfig,
32
+ headers: { ...headers, ...requestConfig.headers },
33
+ })
34
+ return findPetsByTagsQueryResponse.parse(res.data)
35
+ }
36
+
37
+ export function findPetsByTagsQueryOptions(
38
+ headers: FindPetsByTagsHeaderParams,
39
+ params?: FindPetsByTagsQueryParams,
40
+ config: Partial<RequestConfig> & { client?: typeof fetch } = {},
41
+ ) {
42
+ const queryKey = findPetsByTagsQueryKey(params)
43
+ return queryOptions<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, FindPetsByTagsQueryResponse, typeof queryKey>({
44
+ queryKey,
45
+ queryFn: async ({ signal }) => {
46
+ config.signal = signal
47
+ return findPetsByTags(headers, params, config)
48
+ },
49
+ })
50
+ }
51
+
52
+ /**
53
+ * @description Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
54
+ * @summary Finds Pets by tags
55
+ * {@link /pet/findByTags}
56
+ */
57
+ export function useFindPetsByTags<
58
+ TData = FindPetsByTagsQueryResponse,
59
+ TQueryData = FindPetsByTagsQueryResponse,
60
+ TQueryKey extends QueryKey = FindPetsByTagsQueryKey,
61
+ >(
62
+ headers: FindPetsByTagsHeaderParams,
63
+ params?: FindPetsByTagsQueryParams,
64
+ options: {
65
+ query?: Partial<QueryObserverOptions<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, TData, TQueryData, TQueryKey>> & {
66
+ client?: QueryClient
67
+ }
68
+ client?: Partial<RequestConfig> & { client?: typeof fetch }
69
+ } = {},
70
+ ) {
71
+ const { query: queryConfig = {}, client: config = {} } = options ?? {}
72
+ const { client: queryClient, ...queryOptions } = queryConfig
73
+ const queryKey = queryOptions?.queryKey ?? findPetsByTagsQueryKey(params)
74
+
75
+ const query = useQuery(
76
+ {
77
+ ...findPetsByTagsQueryOptions(headers, params, config),
78
+ queryKey,
79
+ ...queryOptions,
80
+ } as unknown as QueryObserverOptions,
81
+ queryClient,
82
+ ) as UseQueryResult<TData, ResponseErrorConfig<FindPetsByTags400>> & { queryKey: TQueryKey }
83
+
84
+ query.queryKey = queryKey as TQueryKey
85
+
86
+ return query
87
+ }
package/src/plugin.ts CHANGED
@@ -188,7 +188,7 @@ export const pluginReactQuery = definePlugin<PluginReactQuery>((options) => {
188
188
  fabric: this.fabric,
189
189
  oas,
190
190
  pluginManager: this.pluginManager,
191
- logger: this.logger,
191
+ events: this.events,
192
192
  plugin: this.plugin,
193
193
  contentType,
194
194
  exclude,
@@ -207,7 +207,6 @@ export const pluginReactQuery = definePlugin<PluginReactQuery>((options) => {
207
207
  meta: {
208
208
  pluginKey: this.plugin.key,
209
209
  },
210
- logger: this.logger,
211
210
  })
212
211
 
213
212
  await this.upsertFile(...barrelFiles)