@kubb/core 5.0.0-alpha.21 → 5.0.0-alpha.23
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/{PluginDriver-CEQPafXV.d.ts → PluginDriver-P920mak9.d.ts} +135 -54
- package/dist/hooks.cjs +3 -0
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.ts +6 -3
- package/dist/hooks.js +3 -0
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +135 -228
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +26 -69
- package/dist/index.js +136 -227
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/Kubb.ts +5 -5
- package/src/PluginDriver.ts +110 -154
- package/src/build.ts +11 -11
- package/src/constants.ts +2 -12
- package/src/defineGenerator.ts +29 -7
- package/src/defineResolver.ts +13 -19
- package/src/hooks/useDriver.ts +3 -0
- package/src/hooks/useMode.ts +3 -3
- package/src/index.ts +0 -2
- package/src/renderNode.tsx +9 -6
- package/src/types.ts +67 -35
- package/src/utils/TreeNode.ts +22 -7
- package/src/utils/getBarrelFiles.ts +9 -6
- package/src/utils/getConfigs.ts +1 -1
- package/src/utils/getPreset.ts +3 -3
- package/src/utils/mergeResolvers.ts +9 -1
- package/src/defineBuilder.ts +0 -26
- package/src/definePreset.ts +0 -27
package/src/utils/getPreset.ts
CHANGED
|
@@ -5,11 +5,11 @@ import { mergeResolvers } from './mergeResolvers.ts'
|
|
|
5
5
|
type GetPresetParams<TResolver extends Resolver> = {
|
|
6
6
|
preset: CompatibilityPreset
|
|
7
7
|
presets: Presets<TResolver>
|
|
8
|
-
resolvers
|
|
8
|
+
resolvers?: Array<TResolver>
|
|
9
9
|
/**
|
|
10
10
|
* User-supplied generators to append after the preset's generators.
|
|
11
11
|
*/
|
|
12
|
-
generators
|
|
12
|
+
generators?: Array<Generator<any>>
|
|
13
13
|
transformers?: Array<Visitor>
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -29,7 +29,7 @@ type GetPresetResult<TResolver extends Resolver> = {
|
|
|
29
29
|
* - Combines preset generators with user-supplied generators; falls back to the `default` preset's generators when neither provides any.
|
|
30
30
|
*/
|
|
31
31
|
export function getPreset<TResolver extends Resolver = Resolver>(params: GetPresetParams<TResolver>): GetPresetResult<TResolver> {
|
|
32
|
-
const { preset: presetName, presets, resolvers, transformers: userTransformers, generators: userGenerators } = params
|
|
32
|
+
const { preset: presetName, presets, resolvers = [], transformers: userTransformers = [], generators: userGenerators = [] } = params
|
|
33
33
|
const [defaultResolver, ...userResolvers] = resolvers
|
|
34
34
|
const preset = presets[presetName]
|
|
35
35
|
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import type { Resolver } from '../types.ts'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Merges an
|
|
4
|
+
* Merges an ordered list of resolvers into a single resolver by shallow-merging each entry left to right.
|
|
5
|
+
*
|
|
6
|
+
* Later entries win when keys conflict, so the last resolver in the list takes highest precedence.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const resolver = mergeResolvers(resolverTs, resolverTsLegacy)
|
|
11
|
+
* // resolverTsLegacy methods override resolverTs where they overlap
|
|
12
|
+
* ```
|
|
5
13
|
*/
|
|
6
14
|
export function mergeResolvers<T extends Resolver>(...resolvers: Array<T>): T {
|
|
7
15
|
return resolvers.reduce<T>((acc, curr) => ({ ...acc, ...curr }), resolvers[0]!)
|
package/src/defineBuilder.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { PluginFactoryOptions } from './types.ts'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Builder type for the plugin-specific builder fields.
|
|
5
|
-
* `name` is required; all other methods are defined by the concrete plugin builder type.
|
|
6
|
-
*/
|
|
7
|
-
type BuilderBuilder<T extends PluginFactoryOptions> = () => T['builder'] & ThisType<T['builder']>
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Defines a builder for a plugin — a named collection of schema-building helpers that
|
|
11
|
-
* can be exported alongside the plugin and imported by other plugins or generators.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* export const builder = defineBuilder<PluginTs>(() => ({
|
|
15
|
-
* name: 'default',
|
|
16
|
-
* buildParamsSchema({ params, node, resolver }) {
|
|
17
|
-
* return createSchema({ type: 'object', properties: [] })
|
|
18
|
-
* },
|
|
19
|
-
* buildDataSchemaNode({ node, resolver }) {
|
|
20
|
-
* return createSchema({ type: 'object', properties: [] })
|
|
21
|
-
* },
|
|
22
|
-
* }))
|
|
23
|
-
*/
|
|
24
|
-
export function defineBuilder<T extends PluginFactoryOptions>(build: BuilderBuilder<T>): T['builder'] {
|
|
25
|
-
return build() as T['builder']
|
|
26
|
-
}
|
package/src/definePreset.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { Visitor } from '@kubb/ast/types'
|
|
2
|
-
import type { Generator, Preset, Resolver } from './types.ts'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Creates a typed preset object that bundles a name, resolvers, optional
|
|
6
|
-
* transformers, and optional generators — the building block for composable plugin presets.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* import { definePreset } from '@kubb/core'
|
|
10
|
-
* import { resolverTsLegacy } from '@kubb/plugin-ts'
|
|
11
|
-
*
|
|
12
|
-
* export const myPreset = definePreset('myPreset', { resolvers: [resolverTsLegacy] })
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* // With custom transformers
|
|
16
|
-
* export const myPreset = definePreset('myPreset', { resolvers: [resolverTsLegacy], transformers: [myTransformer] })
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* // With generators
|
|
20
|
-
* export const myPreset = definePreset('myPreset', { resolvers: [resolverTsLegacy], generators: [typeGeneratorLegacy] })
|
|
21
|
-
*/
|
|
22
|
-
export function definePreset<TResolver extends Resolver = Resolver, TName extends string = string>(
|
|
23
|
-
name: TName,
|
|
24
|
-
{ resolvers, transformers, generators }: { resolvers: Array<TResolver>; transformers?: Array<Visitor>; generators?: Array<Generator<any>> },
|
|
25
|
-
): Preset<TResolver> & { name: TName } {
|
|
26
|
-
return { name, resolvers, transformers, generators }
|
|
27
|
-
}
|