@kubb/core 5.0.0-beta.1 → 5.0.0-beta.100
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/LICENSE +17 -10
- package/README.md +25 -158
- package/dist/index.cjs +2262 -1130
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +107 -295
- package/dist/index.js +2253 -1122
- package/dist/index.js.map +1 -1
- package/dist/mocks.cjs +81 -32
- package/dist/mocks.cjs.map +1 -1
- package/dist/mocks.d.ts +37 -14
- package/dist/mocks.js +83 -36
- package/dist/mocks.js.map +1 -1
- package/dist/types-DM7-MGjZ.d.ts +2838 -0
- package/dist/usingCtx-BNggxUEL.js +597 -0
- package/dist/usingCtx-BNggxUEL.js.map +1 -0
- package/dist/usingCtx-CZyLSqds.cjs +705 -0
- package/dist/usingCtx-CZyLSqds.cjs.map +1 -0
- package/package.json +7 -35
- package/dist/PluginDriver-BXibeQk-.cjs +0 -1036
- package/dist/PluginDriver-BXibeQk-.cjs.map +0 -1
- package/dist/PluginDriver-DV3p2Hky.js +0 -945
- package/dist/PluginDriver-DV3p2Hky.js.map +0 -1
- package/dist/types-CuNocrbJ.d.ts +0 -2148
- package/src/FileManager.ts +0 -115
- package/src/FileProcessor.ts +0 -86
- package/src/Kubb.ts +0 -300
- package/src/PluginDriver.ts +0 -424
- package/src/constants.ts +0 -35
- package/src/createAdapter.ts +0 -32
- package/src/createKubb.ts +0 -548
- package/src/createRenderer.ts +0 -57
- package/src/createStorage.ts +0 -70
- package/src/defineGenerator.ts +0 -87
- package/src/defineLogger.ts +0 -19
- package/src/defineMiddleware.ts +0 -62
- package/src/defineParser.ts +0 -44
- package/src/definePlugin.ts +0 -83
- package/src/defineResolver.ts +0 -521
- package/src/devtools.ts +0 -59
- package/src/index.ts +0 -20
- package/src/mocks.ts +0 -178
- package/src/renderNode.ts +0 -35
- package/src/storages/fsStorage.ts +0 -114
- package/src/storages/memoryStorage.ts +0 -55
- package/src/types.ts +0 -1296
- package/src/utils/diagnostics.ts +0 -18
- package/src/utils/isInputPath.ts +0 -10
- package/src/utils/packageJSON.ts +0 -99
- /package/dist/{chunk--u3MIqq1.js → rolldown-runtime-C0LytTxp.js} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,318 +1,135 @@
|
|
|
1
|
-
import { t as __name } from "./
|
|
2
|
-
import { $ as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
url: string;
|
|
12
|
-
/**
|
|
13
|
-
* Extracted path parameters as a key-value map, or `undefined` when the path has none.
|
|
14
|
-
*/
|
|
15
|
-
params?: Record<string, string>;
|
|
16
|
-
};
|
|
17
|
-
type ObjectOptions = {
|
|
18
|
-
/**
|
|
19
|
-
* Controls whether the `url` is rendered as an Express path or a template literal.
|
|
20
|
-
* @default 'path'
|
|
21
|
-
*/
|
|
22
|
-
type?: 'path' | 'template';
|
|
23
|
-
/**
|
|
24
|
-
* Optional transform applied to each extracted parameter name.
|
|
25
|
-
*/
|
|
26
|
-
replacer?: (pathParam: string) => string;
|
|
27
|
-
/**
|
|
28
|
-
* When `true`, the result is serialized to a string expression instead of a plain object.
|
|
29
|
-
*/
|
|
30
|
-
stringify?: boolean;
|
|
1
|
+
import { t as __name } from "./rolldown-runtime-C0LytTxp.js";
|
|
2
|
+
import { $ as definePlugin, A as Generator, At as DiagnosticSeverity, B as Include, Bt as AdapterSource, C as KubbWarnContext, Ct as UserReporter, D as CreateKubbOptions, Dt as DiagnosticDoc, E as UserConfig, Et as Diagnostic, F as Parser, Ft as SerializedDiagnostic, G as Output, H as KubbPluginSetupContext, I as defineParser, It as UpdateDiagnostic, J as Override, K as OutputMode, L as Exclude, Lt as Hookable, M as defineGenerator, Mt as PerformanceDiagnostic, N as KubbDriver, Nt as ProblemCode, O as Kubb, Ot as DiagnosticKind, P as FileManagerHooks, Pt as ProblemDiagnostic, Q as ResolvePluginOptions, R as Filter, Rt as Adapter, S as KubbSuccessContext, St as ReporterName, T as PostGenerateCommand, Tt as logLevel, U as KubbPluginStartContext, V as KubbPluginEndContext, Vt as createAdapter, W as NormalizedPlugin, X as PluginFactoryOptions, Y as Plugin, Z as PluginName, _ as KubbHookStartContext, _t as Storage, a as KubbBuildEndContext, at as ResolveOptionsContext, b as KubbLifecycleStartContext, bt as Reporter, c as KubbErrorContext, ct as ResolverDefault, d as KubbFilesProcessingStartContext, dt as ResolverFilePathParams, et as BannerMeta, f as KubbFilesProcessingUpdateContext, ft as ResolverPatch, g as KubbHookLineContext, gt as createRenderer, h as KubbHookEndContext, ht as RendererFactory, i as Input, it as ResolveImportsOptions, j as GeneratorContext, jt as Diagnostics, k as createKubb, kt as DiagnosticLocation, l as KubbFileProcessingUpdate, lt as ResolverFile, m as KubbGenerationStartContext, mt as Renderer, n as CLIOptions, nt as ResolveBannerFile, o as KubbBuildStartContext, ot as ResolvePathOptions, p as KubbGenerationEndContext, pt as ResolverPathParams, q as OutputOptions, r as Config, rt as ResolveFileOptions, s as KubbDiagnosticContext, st as Resolver, t as BuildOutput, tt as ResolveBannerContext, u as KubbFilesProcessingEndContext, ut as ResolverFileParams, v as KubbHooks, vt as createStorage, w as PossibleConfig, wt as createReporter, x as KubbPluginsEndContext, xt as ReporterContext, y as KubbInfoContext, yt as GenerationResult, z as Group, zt as AdapterFactoryOptions } from "./types-DM7-MGjZ.js";
|
|
3
|
+
//#region src/applyConfigDefaults.d.ts
|
|
4
|
+
type ApplyConfigDefaultsOptions<TOutput> = {
|
|
5
|
+
defaultAdapter: Adapter;
|
|
6
|
+
barrelPlugin: Plugin;
|
|
7
|
+
barrelPluginName: string;
|
|
8
|
+
/** Output fields to fill in when the user's config leaves them unset. */
|
|
9
|
+
defaultOutput: Partial<TOutput>;
|
|
31
10
|
};
|
|
32
11
|
/**
|
|
33
|
-
*
|
|
12
|
+
* Fills in the config defaults shared by `defineConfig` and the unplugin factory: the fallback
|
|
13
|
+
* adapter, `defaultOutput`'s fields, and appending the barrel plugin when it's not already
|
|
14
|
+
* registered. Both entry points construct their own adapter, barrel plugin, and output defaults
|
|
15
|
+
* (`barrel` is a `@kubb/plugin-barrel` extension field core doesn't know about) and pass them in,
|
|
16
|
+
* so `@kubb/core` doesn't need to depend on `@kubb/adapter-oas` or `@kubb/plugin-barrel`.
|
|
34
17
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
18
|
+
declare function applyConfigDefaults<TOutput extends Config['output'] = Config['output']>(config: {
|
|
19
|
+
adapter?: Adapter;
|
|
20
|
+
output: TOutput;
|
|
21
|
+
plugins?: Array<Plugin>;
|
|
22
|
+
}, { defaultAdapter, barrelPlugin, barrelPluginName, defaultOutput }: ApplyConfigDefaultsOptions<TOutput>): {
|
|
23
|
+
adapter: Adapter;
|
|
24
|
+
output: TOutput;
|
|
25
|
+
plugins: Array<Plugin>;
|
|
42
26
|
};
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region src/reporters/cliReporter.d.ts
|
|
43
29
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* const p = new URLPath('/pet/{petId}')
|
|
48
|
-
* p.URL // '/pet/:petId'
|
|
49
|
-
* p.template // '`/pet/${petId}`'
|
|
30
|
+
* The default `cli` reporter. Renders the {@link Report} for each config as it finishes, independent
|
|
31
|
+
* of the live logger view. Suppressed at `silent`. The `verbose` level adds the per-plugin timings.
|
|
50
32
|
*/
|
|
51
|
-
declare
|
|
52
|
-
#private;
|
|
53
|
-
/**
|
|
54
|
-
* The raw OpenAPI/Swagger path string, e.g. `/pet/{petId}`.
|
|
55
|
-
*/
|
|
56
|
-
path: string;
|
|
57
|
-
constructor(path: string, options?: Options);
|
|
58
|
-
/** Converts the OpenAPI path to Express-style colon syntax, e.g. `/pet/{petId}` → `/pet/:petId`.
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
* ```ts
|
|
62
|
-
* new URLPath('/pet/{petId}').URL // '/pet/:petId'
|
|
63
|
-
* ```
|
|
64
|
-
*/
|
|
65
|
-
get URL(): string;
|
|
66
|
-
/** Returns `true` when `path` is a fully-qualified URL (e.g. starts with `https://`).
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```ts
|
|
70
|
-
* new URLPath('https://petstore.swagger.io/v2/pet').isURL // true
|
|
71
|
-
* new URLPath('/pet/{petId}').isURL // false
|
|
72
|
-
* ```
|
|
73
|
-
*/
|
|
74
|
-
get isURL(): boolean;
|
|
75
|
-
/**
|
|
76
|
-
* Converts the OpenAPI path to a TypeScript template literal string.
|
|
77
|
-
*
|
|
78
|
-
* @example
|
|
79
|
-
* new URLPath('/pet/{petId}').template // '`/pet/${petId}`'
|
|
80
|
-
* new URLPath('/account/monetary-accountID').template // '`/account/${monetaryAccountId}`'
|
|
81
|
-
*/
|
|
82
|
-
get template(): string;
|
|
83
|
-
/** Returns the path and its extracted params as a structured `URLObject`, or as a stringified expression when `stringify` is set.
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```ts
|
|
87
|
-
* new URLPath('/pet/{petId}').object
|
|
88
|
-
* // { url: '/pet/:petId', params: { petId: 'petId' } }
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
get object(): URLObject | string;
|
|
92
|
-
/** Returns a map of path parameter names, or `undefined` when the path has no parameters.
|
|
93
|
-
*
|
|
94
|
-
* @example
|
|
95
|
-
* ```ts
|
|
96
|
-
* new URLPath('/pet/{petId}').params // { petId: 'petId' }
|
|
97
|
-
* new URLPath('/pet').params // undefined
|
|
98
|
-
* ```
|
|
99
|
-
*/
|
|
100
|
-
get params(): Record<string, string> | undefined;
|
|
101
|
-
toObject({
|
|
102
|
-
type,
|
|
103
|
-
replacer,
|
|
104
|
-
stringify
|
|
105
|
-
}?: ObjectOptions): URLObject | string;
|
|
106
|
-
/**
|
|
107
|
-
* Converts the OpenAPI path to a TypeScript template literal string.
|
|
108
|
-
* An optional `replacer` can transform each extracted parameter name before interpolation.
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* new URLPath('/pet/{petId}').toTemplateString() // '`/pet/${petId}`'
|
|
112
|
-
*/
|
|
113
|
-
toTemplateString({
|
|
114
|
-
prefix,
|
|
115
|
-
replacer
|
|
116
|
-
}?: {
|
|
117
|
-
prefix?: string;
|
|
118
|
-
replacer?: (pathParam: string) => string;
|
|
119
|
-
}): string;
|
|
120
|
-
/**
|
|
121
|
-
* Extracts all `{param}` segments from the path and returns them as a key-value map.
|
|
122
|
-
* An optional `replacer` transforms each parameter name in both key and value positions.
|
|
123
|
-
* Returns `undefined` when no path parameters are found.
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* ```ts
|
|
127
|
-
* new URLPath('/pet/{petId}/tag/{tagId}').getParams()
|
|
128
|
-
* // { petId: 'petId', tagId: 'tagId' }
|
|
129
|
-
* ```
|
|
130
|
-
*/
|
|
131
|
-
getParams(replacer?: (pathParam: string) => string): Record<string, string> | undefined;
|
|
132
|
-
/** Converts the OpenAPI path to Express-style colon syntax.
|
|
133
|
-
*
|
|
134
|
-
* @example
|
|
135
|
-
* ```ts
|
|
136
|
-
* new URLPath('/pet/{petId}').toURLPath() // '/pet/:petId'
|
|
137
|
-
* ```
|
|
138
|
-
*/
|
|
139
|
-
toURLPath(): string;
|
|
140
|
-
}
|
|
33
|
+
declare const cliReporter: Reporter;
|
|
141
34
|
//#endregion
|
|
142
|
-
//#region src/
|
|
143
|
-
type AdapterBuilder<T extends AdapterFactoryOptions> = (options: T['options']) => Adapter<T>;
|
|
35
|
+
//#region src/reporters/fileReporter.d.ts
|
|
144
36
|
/**
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
* @note
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
* ```ts
|
|
154
|
-
* export const myAdapter = createAdapter<MyAdapter>((options) => {
|
|
155
|
-
* return {
|
|
156
|
-
* name: 'my-adapter',
|
|
157
|
-
* options,
|
|
158
|
-
* async parse(source) {
|
|
159
|
-
* // Transform source format to InputNode
|
|
160
|
-
* return { ... }
|
|
161
|
-
* },
|
|
162
|
-
* }
|
|
163
|
-
* })
|
|
164
|
-
*
|
|
165
|
-
* // Instantiate:
|
|
166
|
-
* const adapter = myAdapter({ validate: true })
|
|
167
|
-
* ```
|
|
37
|
+
* The `file` reporter. Writes a config's {@link Report} to `.kubb/kubb-<name>-<timestamp>.log` as a
|
|
38
|
+
* plain-text document: a `# <name> — <timestamp>` header, a `## Summary` with the same counts the
|
|
39
|
+
* cli and json reporters expose, a `## Problems` section in the miette block format, and a
|
|
40
|
+
* `## Timings` section. Selected with `--reporter file` (or `reporters: ['file']`).
|
|
41
|
+
*
|
|
42
|
+
* @note It captures the collected diagnostics once a config finishes, not the live
|
|
43
|
+
* `kubb:info`/`kubb:plugin` hook stream. Color is stripped so the file stays plain text even when
|
|
44
|
+
* the run is attached to a TTY.
|
|
168
45
|
*/
|
|
169
|
-
declare
|
|
46
|
+
declare const fileReporter: Reporter;
|
|
170
47
|
//#endregion
|
|
171
|
-
//#region src/
|
|
48
|
+
//#region src/reporters/jsonReporter.d.ts
|
|
172
49
|
/**
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
* name: 'my-logger',
|
|
179
|
-
* install(context, options) {
|
|
180
|
-
* context.on('kubb:info', (message) => console.log('ℹ', message))
|
|
181
|
-
* context.on('kubb:error', (error) => console.error('✗', error.message))
|
|
182
|
-
* },
|
|
183
|
-
* })
|
|
184
|
-
* ```
|
|
50
|
+
* The `json` reporter. `report` returns one config's {@link Report}, which {@link createReporter}
|
|
51
|
+
* buffers, and `drain` writes them as a single pretty-printed JSON array on `kubb:lifecycle:end`.
|
|
52
|
+
* Buffering keeps a multi-config run one valid JSON document on stdout instead of concatenated
|
|
53
|
+
* objects that would break `jq .`. The terminal reporter is suppressed while `json` is active so
|
|
54
|
+
* stdout stays valid JSON.
|
|
185
55
|
*/
|
|
186
|
-
declare
|
|
56
|
+
declare const jsonReporter: Reporter;
|
|
187
57
|
//#endregion
|
|
188
|
-
//#region src/
|
|
58
|
+
//#region src/createResolver.d.ts
|
|
189
59
|
/**
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* are optional — built-in fallbacks are injected when omitted.
|
|
194
|
-
*
|
|
195
|
-
* The builder receives `ctx` — a reference to the fully assembled resolver — so methods can
|
|
196
|
-
* call sibling resolver methods without using `this`. Because `ctx` is captured by the closure
|
|
197
|
-
* and the resolver is populated after the builder runs, `ctx` correctly reflects any overrides
|
|
198
|
-
* that were applied by the builder itself.
|
|
60
|
+
* The plugin-specific resolver fields handed to `createResolver`. `name` and `file` fall
|
|
61
|
+
* back to the built-ins when omitted. Every method reaches sibling helpers through `this`,
|
|
62
|
+
* which `ThisType` types as the full resolver.
|
|
199
63
|
*/
|
|
200
|
-
type
|
|
201
|
-
name: string;
|
|
64
|
+
type ResolverOptions<T extends PluginFactoryOptions> = Omit<T['resolver'], keyof Resolver> & {
|
|
202
65
|
pluginName: T['name'];
|
|
203
|
-
|
|
66
|
+
name?: T['resolver']['name'];
|
|
67
|
+
file?: ResolverFile;
|
|
68
|
+
} & ThisType<T['resolver']>;
|
|
204
69
|
/**
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
* ```ts
|
|
211
|
-
* const options = defaultResolveOptions(operationNode, {
|
|
212
|
-
* options: { output: 'types' },
|
|
213
|
-
* exclude: [{ type: 'tag', pattern: 'internal' }],
|
|
214
|
-
* })
|
|
215
|
-
* // → null when node has tag 'internal'
|
|
216
|
-
* ```
|
|
70
|
+
* Defines a plugin resolver, the object that decides what every generated symbol and file
|
|
71
|
+
* path is called. Override the top-level `name` and `file` to set the plugin's conventions,
|
|
72
|
+
* and add your own naming helpers, top-level (`typeName`, …) or grouped in namespaces
|
|
73
|
+
* (`query`, `schema`, …). Every method reaches sibling helpers and the built-in machinery
|
|
74
|
+
* through `this.name`, `this.file`, and `this.default`.
|
|
217
75
|
*
|
|
218
|
-
* @example
|
|
76
|
+
* @example Custom identifier casing
|
|
219
77
|
* ```ts
|
|
220
|
-
* const
|
|
221
|
-
*
|
|
222
|
-
*
|
|
78
|
+
* export const resolverTs = createResolver<PluginTs>({
|
|
79
|
+
* pluginName: 'plugin-ts',
|
|
80
|
+
* name(name) {
|
|
81
|
+
* return ensureValidVarName(pascalCase(name))
|
|
82
|
+
* },
|
|
223
83
|
* })
|
|
224
|
-
* // → { enumType: 'enum' } when operationId matches
|
|
225
84
|
* ```
|
|
226
|
-
*/
|
|
227
|
-
/**
|
|
228
|
-
* Defines a resolver for a plugin, injecting built-in defaults for name casing,
|
|
229
|
-
* include/exclude/override filtering, path resolution, and file construction.
|
|
230
85
|
*
|
|
231
|
-
*
|
|
232
|
-
* - `default` — name casing strategy (camelCase / PascalCase)
|
|
233
|
-
* - `resolveOptions` — include/exclude/override filtering
|
|
234
|
-
* - `resolvePath` — output path computation
|
|
235
|
-
* - `resolveFile` — full `FileNode` construction
|
|
236
|
-
*
|
|
237
|
-
* The builder receives `ctx` — a reference to the assembled resolver — so methods can
|
|
238
|
-
* call sibling resolver methods using `ctx` instead of `this`.
|
|
239
|
-
*
|
|
240
|
-
* @example Basic resolver with naming helpers
|
|
86
|
+
* @example Rename generated files with `file.baseName`
|
|
241
87
|
* ```ts
|
|
242
|
-
* export const
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
* return
|
|
246
|
-
* },
|
|
247
|
-
* resolveTypedName(node) {
|
|
248
|
-
* return ctx.default(node.name, 'type')
|
|
88
|
+
* export const resolverFaker = createResolver<PluginFaker>({
|
|
89
|
+
* pluginName: 'plugin-faker',
|
|
90
|
+
* name(name) {
|
|
91
|
+
* return camelCase(name, { prefix: 'create' })
|
|
249
92
|
* },
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
*
|
|
254
|
-
* ```ts
|
|
255
|
-
* export const resolver = defineResolver<PluginTs>((_ctx) => ({
|
|
256
|
-
* name: 'custom',
|
|
257
|
-
* resolvePath({ baseName }, { root, output }) {
|
|
258
|
-
* return path.resolve(root, output.path, 'generated', baseName)
|
|
93
|
+
* file: {
|
|
94
|
+
* baseName({ name, extname }) {
|
|
95
|
+
* return `${camelCase(name, { prefix: 'create' })}${extname}`
|
|
96
|
+
* },
|
|
259
97
|
* },
|
|
260
|
-
* })
|
|
98
|
+
* })
|
|
261
99
|
* ```
|
|
262
100
|
*
|
|
263
|
-
* @example
|
|
101
|
+
* @example Own the full path with `file.path`
|
|
264
102
|
* ```ts
|
|
265
|
-
* export const
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
103
|
+
* export const resolverFaker = createResolver<PluginFaker>({
|
|
104
|
+
* pluginName: 'plugin-faker',
|
|
105
|
+
* file: {
|
|
106
|
+
* path({ baseName, output }) {
|
|
107
|
+
* return `${output.path}/mocks/${baseName}`
|
|
108
|
+
* },
|
|
269
109
|
* },
|
|
270
|
-
* })
|
|
110
|
+
* })
|
|
271
111
|
* ```
|
|
272
112
|
*/
|
|
273
|
-
declare function
|
|
113
|
+
declare function createResolver<T extends PluginFactoryOptions>(options: ResolverOptions<T>): T['resolver'];
|
|
274
114
|
//#endregion
|
|
275
|
-
//#region src/
|
|
276
|
-
type ParseOptions = {
|
|
277
|
-
parsers?: Map<FileNode['extname'], Parser>;
|
|
278
|
-
extension?: Record<FileNode['extname'], FileNode['extname'] | ''>;
|
|
279
|
-
};
|
|
280
|
-
type RunOptions = ParseOptions & {
|
|
281
|
-
/**
|
|
282
|
-
* @default 'sequential'
|
|
283
|
-
*/
|
|
284
|
-
mode?: 'sequential' | 'parallel';
|
|
285
|
-
onStart?: (files: Array<FileNode>) => Promise<void> | void;
|
|
286
|
-
onEnd?: (files: Array<FileNode>) => Promise<void> | void;
|
|
287
|
-
onUpdate?: (params: {
|
|
288
|
-
file: FileNode;
|
|
289
|
-
source?: string;
|
|
290
|
-
processed: number;
|
|
291
|
-
total: number;
|
|
292
|
-
percentage: number;
|
|
293
|
-
}) => Promise<void> | void;
|
|
294
|
-
};
|
|
115
|
+
//#region src/input.d.ts
|
|
295
116
|
/**
|
|
296
|
-
*
|
|
297
|
-
* Falls back to joining source values when no matching parser is found.
|
|
117
|
+
* What an `input` value points at, once Kubb has looked at it.
|
|
298
118
|
*
|
|
299
|
-
*
|
|
119
|
+
* - `file` is a local file path, absolute or relative to the config file.
|
|
120
|
+
* - `url` is a remote document to fetch.
|
|
121
|
+
* - `inline` is OpenAPI content held in the string itself (JSON or YAML).
|
|
122
|
+
* - `object` is an already-parsed spec.
|
|
300
123
|
*/
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
extension,
|
|
311
|
-
onStart,
|
|
312
|
-
onEnd,
|
|
313
|
-
onUpdate
|
|
314
|
-
}?: RunOptions): Promise<Array<FileNode>>;
|
|
315
|
-
}
|
|
124
|
+
type InputKind = 'file' | 'url' | 'inline' | 'object';
|
|
125
|
+
/**
|
|
126
|
+
* Classifies an `input` value so callers branch on it once instead of repeating the checks.
|
|
127
|
+
*
|
|
128
|
+
* A non-string is a parsed spec (`object`). A string is `inline` when it holds OpenAPI content,
|
|
129
|
+
* meaning it starts with `{` or `[`, spans multiple lines, or opens with a YAML `openapi:` or
|
|
130
|
+
* `swagger:` key. Otherwise a string is a `url` when it parses as one, or a `file` path.
|
|
131
|
+
*/
|
|
132
|
+
declare function getInputKind(input: NonNullable<Input>): InputKind;
|
|
316
133
|
//#endregion
|
|
317
134
|
//#region src/storages/fsStorage.d.ts
|
|
318
135
|
/**
|
|
@@ -322,11 +139,13 @@ declare class FileProcessor {
|
|
|
322
139
|
* Keys are resolved against `process.cwd()`, so root-relative paths such as
|
|
323
140
|
* `src/gen/api/getPets.ts` are written to the correct location without extra configuration.
|
|
324
141
|
*
|
|
325
|
-
*
|
|
326
|
-
* -
|
|
327
|
-
* -
|
|
328
|
-
* -
|
|
329
|
-
* -
|
|
142
|
+
* Writes are deduplicated and directory-safe:
|
|
143
|
+
* - leading and trailing whitespace is trimmed before writing
|
|
144
|
+
* - the write is skipped when the file content is already identical
|
|
145
|
+
* - missing parent directories are created automatically
|
|
146
|
+
* - Bun's native file API is used when running under Bun
|
|
147
|
+
* - concurrent `setItem` calls are capped at {@link WRITE_CONCURRENCY} in flight, so a caller
|
|
148
|
+
* can fire every file's write without pacing itself
|
|
330
149
|
*
|
|
331
150
|
* @example
|
|
332
151
|
* ```ts
|
|
@@ -334,7 +153,7 @@ declare class FileProcessor {
|
|
|
334
153
|
* import { defineConfig } from 'kubb'
|
|
335
154
|
*
|
|
336
155
|
* export default defineConfig({
|
|
337
|
-
* input:
|
|
156
|
+
* input: './petStore.yaml',
|
|
338
157
|
* output: { path: './src/gen' },
|
|
339
158
|
* storage: fsStorage(),
|
|
340
159
|
* })
|
|
@@ -356,7 +175,7 @@ declare const fsStorage: (options?: Record<string, never> | undefined) => Storag
|
|
|
356
175
|
* import { defineConfig } from 'kubb'
|
|
357
176
|
*
|
|
358
177
|
* export default defineConfig({
|
|
359
|
-
* input:
|
|
178
|
+
* input: './petStore.yaml',
|
|
360
179
|
* output: { path: './src/gen' },
|
|
361
180
|
* storage: memoryStorage(),
|
|
362
181
|
* })
|
|
@@ -364,12 +183,5 @@ declare const fsStorage: (options?: Record<string, never> | undefined) => Storag
|
|
|
364
183
|
*/
|
|
365
184
|
declare const memoryStorage: (options?: Record<string, never> | undefined) => Storage;
|
|
366
185
|
//#endregion
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* Type guard to check if a given config has an `input.path`.
|
|
370
|
-
*/
|
|
371
|
-
declare function isInputPath(config: UserConfig | undefined): config is UserConfig<InputPath>;
|
|
372
|
-
declare function isInputPath(config: Config | undefined): config is Config<InputPath>;
|
|
373
|
-
//#endregion
|
|
374
|
-
export { Adapter, AdapterFactoryOptions, AdapterSource, AsyncEventEmitter, BuildOutput, CLIOptions, Config, DevtoolsOptions, Exclude, FileManager, FileProcessor, Generator, GeneratorContext, Group, Include, InputData, InputPath, Kubb, KubbBuildEndContext, KubbBuildStartContext, KubbConfigEndContext, KubbDebugContext, KubbErrorContext, KubbFileProcessingUpdateContext, KubbFilesProcessingEndContext, KubbFilesProcessingStartContext, KubbGenerationEndContext, KubbGenerationStartContext, KubbGenerationSummaryContext, KubbHookEndContext, KubbHookStartContext, KubbHooks, KubbInfoContext, KubbLifecycleStartContext, KubbPluginEndContext, KubbPluginSetupContext, KubbPluginStartContext, KubbPluginsEndContext, KubbSuccessContext, KubbVersionNewContext, KubbWarnContext, Logger, LoggerContext, LoggerOptions, Middleware, NormalizedPlugin, Output, Override, Parser, Plugin, PluginDriver, PluginFactoryOptions, PossibleConfig, Renderer, RendererFactory, ResolveBannerContext, ResolveNameParams, ResolveOptionsContext, Resolver, ResolverContext, ResolverFileParams, ResolverPathParams, Storage, URLPath, UserConfig, UserLogger, ast, createAdapter, createKubb, createRenderer, createStorage, defineGenerator, defineLogger, defineMiddleware, defineParser, definePlugin, defineResolver, fsStorage, isInputPath, logLevel, memoryStorage };
|
|
186
|
+
export { type Adapter, type AdapterFactoryOptions, type AdapterSource, type BannerMeta, BuildOutput, CLIOptions, Config, type CreateKubbOptions, type Diagnostic, type DiagnosticDoc, type DiagnosticKind, type DiagnosticLocation, type DiagnosticSeverity, Diagnostics, type Exclude, type FileManagerHooks, type Filter, type GenerationResult, type Generator, type GeneratorContext, type Group, Hookable, type Include, Input, type InputKind, type Kubb, KubbBuildEndContext, KubbBuildStartContext, KubbDiagnosticContext, KubbDriver, KubbErrorContext, KubbFileProcessingUpdate, KubbFilesProcessingEndContext, KubbFilesProcessingStartContext, KubbFilesProcessingUpdateContext, KubbGenerationEndContext, KubbGenerationStartContext, KubbHookEndContext, KubbHookLineContext, KubbHookStartContext, KubbHooks, KubbInfoContext, KubbLifecycleStartContext, type KubbPluginEndContext, type KubbPluginSetupContext, type KubbPluginStartContext, KubbPluginsEndContext, KubbSuccessContext, KubbWarnContext, type NormalizedPlugin, type Output, type OutputMode, type OutputOptions, type Override, type Parser, type PerformanceDiagnostic, type Plugin, type PluginFactoryOptions, type PluginName, PossibleConfig, PostGenerateCommand, type ProblemCode, type ProblemDiagnostic, type Renderer, type RendererFactory, type Reporter, type ReporterContext, type ReporterName, type ResolveBannerContext, type ResolveBannerFile, type ResolveFileOptions, type ResolveImportsOptions, type ResolveOptionsContext, type ResolvePathOptions, type ResolvePluginOptions, Resolver, type ResolverDefault, type ResolverFile, type ResolverFileParams, type ResolverFilePathParams, type ResolverPatch, type ResolverPathParams, type SerializedDiagnostic, type Storage, type UpdateDiagnostic, UserConfig, type UserReporter, applyConfigDefaults, cliReporter, createAdapter, createKubb, createRenderer, createReporter, createResolver, createStorage, defineGenerator, defineParser, definePlugin, fileReporter, fsStorage, getInputKind, jsonReporter, logLevel, memoryStorage };
|
|
375
187
|
//# sourceMappingURL=index.d.ts.map
|