@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/dist/index.cjs +100 -106
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +8 -19
- package/dist/index.js +101 -107
- package/dist/index.js.map +1 -1
- package/package.json +6 -7
- package/src/generators/clientGenerator.tsx +11 -9
- package/src/plugin.ts +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/plugin-fetch",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
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.
|
|
53
|
-
"@kubb/plugin-zod": "5.0.0-beta.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
53
|
-
file: resolver.
|
|
54
|
-
fileTs: tsResolver.
|
|
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.
|
|
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.
|
|
84
|
-
footer={resolver.
|
|
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 ?
|
|
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
|