@kubb/plugin-fetch 5.0.0-beta.85 → 5.0.0-beta.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/plugin-fetch",
3
- "version": "5.0.0-beta.85",
3
+ "version": "5.0.0-beta.87",
4
4
  "description": "Generate a slim, type-safe HTTP client with Kubb based on the native Fetch api.",
5
5
  "keywords": [
6
6
  "api-client",
@@ -49,18 +49,17 @@
49
49
  "registry": "https://registry.npmjs.org/"
50
50
  },
51
51
  "dependencies": {
52
- "@kubb/plugin-ts": "5.0.0-beta.84",
53
- "@kubb/plugin-zod": "5.0.0-beta.84"
52
+ "@kubb/plugin-ts": "5.0.0-beta.86",
53
+ "@kubb/plugin-zod": "5.0.0-beta.86"
54
54
  },
55
55
  "devDependencies": {
56
- "kubb": "5.0.0-beta.84",
56
+ "kubb": "5.0.0-beta.89",
57
57
  "typescript": "^6.0.3",
58
58
  "@internals/client": "0.0.0",
59
- "@internals/shared": "0.0.0",
60
- "@internals/utils": "0.0.0"
59
+ "@internals/shared": "0.0.0"
61
60
  },
62
61
  "peerDependencies": {
63
- "kubb": "5.0.0-beta.84"
62
+ "kubb": "5.0.0-beta.89"
64
63
  },
65
64
  "engines": {
66
65
  "node": ">=22"
@@ -38,27 +38,29 @@ export const clientGenerator = defineGenerator<PluginFetch>({
38
38
  const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null
39
39
 
40
40
  const hasRequestBody = Boolean(node.requestBody?.content?.[0]?.schema)
41
- const importedTypeNames = [tsResolver.resolveRequestConfigName(node), tsResolver.resolveResponsesName(node)]
41
+ const importedTypeNames = [tsResolver.response.options(node), tsResolver.response.responses(node)]
42
42
 
43
43
  const importedZodNames = zodResolver
44
44
  ? [
45
- resolveResponseValidator(validator) === 'zod' ? zodResolver.resolveResponseName?.(node) : null,
45
+ resolveResponseValidator(validator) === 'zod' ? zodResolver.response.response?.(node) : null,
46
46
  resolveResponseValidator(validator) === 'zod' ? (buildZodErrorParse(node, zodResolver)?.expression ?? null) : null,
47
- resolveRequestValidator(validator) === 'zod' && hasRequestBody ? zodResolver.resolveDataName?.(node) : null,
47
+ resolveRequestValidator(validator) === 'zod' && hasRequestBody ? zodResolver.response.body?.(node) : null,
48
48
  ].filter((name): name is string => Boolean(name))
49
49
  : []
50
50
 
51
51
  const meta = {
52
- name: resolver.resolveName(node.operationId),
53
- file: resolver.resolveFile(operationFileEntry(node, node.operationId), { root, output, group: group ?? undefined }),
54
- fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {
52
+ name: resolver.name(node.operationId),
53
+ file: resolver.file({ ...operationFileEntry(node, node.operationId), root, output, group: group ?? undefined }),
54
+ fileTs: tsResolver.file({
55
+ ...operationFileEntry(node, node.operationId),
55
56
  root,
56
57
  output: pluginTs.options?.output ?? output,
57
58
  group: pluginTs.options?.group ?? undefined,
58
59
  }),
59
60
  fileZod:
60
61
  zodResolver && pluginZod?.options
61
- ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
62
+ ? zodResolver.file({
63
+ ...operationFileEntry(node, node.operationId),
62
64
  root,
63
65
  output: pluginZod.options.output ?? output,
64
66
  group: pluginZod.options?.group ?? undefined,
@@ -80,8 +82,8 @@ export const clientGenerator = defineGenerator<PluginFetch>({
80
82
  baseName={meta.file.baseName}
81
83
  path={meta.file.path}
82
84
  meta={meta.file.meta}
83
- banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}
84
- footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}
85
+ banner={resolver.default.banner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}
86
+ footer={resolver.default.footer(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}
85
87
  >
86
88
  <File.Import name={eventStream ? ['client', 'toEventStream'] : ['client']} root={meta.file.path} path={clientPath} />
87
89
  <File.Import
package/src/plugin.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import path from 'node:path'
2
2
  import { createSdkGenerator, defaultMacros, isValidatorEnabled, resolverClient } from '@internals/client'
3
3
  import { createGroupConfig } from '@internals/shared'
4
- import { definePlugin } from 'kubb/kit'
4
+ import { definePlugin, Resolver } from 'kubb/kit'
5
5
  import { pluginTsName } from '@kubb/plugin-ts'
6
6
  import { pluginZodName } from '@kubb/plugin-zod'
7
7
  import { clientGenerator } from './generators/clientGenerator.tsx'
8
8
  import { fetchClientTemplatePath, fetchSerializersTemplatePath, standardSchemaTemplatePath } from './templates.ts'
9
- import type { PluginFetch, ResolvedOptions } from './types.ts'
9
+ import type { PluginFetch, ResolvedOptions, ResolverClient } from './types.ts'
10
10
 
11
11
  /**
12
12
  * Canonical plugin name for `@kubb/plugin-fetch`. Used for driver lookups and cross-plugin
@@ -58,7 +58,7 @@ export const pluginFetch = definePlugin<PluginFetch>((options) => {
58
58
  baseURL,
59
59
  validator,
60
60
  sdk: sdk ? { mode: sdk.mode ?? 'tag', name: sdk.name } : undefined,
61
- resolver: userResolver ? { ...resolverClient, ...userResolver } : resolverClient,
61
+ resolver: userResolver ? Resolver.merge<ResolverClient>(resolverClient, userResolver) : resolverClient,
62
62
  }
63
63
 
64
64
  // `sdk` swaps the per-operation functions for the class-based SDK; left unset, the standalone