@kubb/core 5.0.0-alpha.15 → 5.0.0-alpha.16

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,6 +1,6 @@
1
1
  import { t as __name } from "./chunk--u3MIqq1.js";
2
2
  import { EventEmitter } from "node:events";
3
- import { Node, OperationNode, Printer, PrinterFactoryOptions, RootNode, SchemaNode } from "@kubb/ast/types";
3
+ import { Node, OperationNode, Printer, PrinterFactoryOptions, RootNode, SchemaNode, Visitor } from "@kubb/ast/types";
4
4
  import { Fabric, KubbFile } from "@kubb/fabric-core/types";
5
5
  import { FabricReactNode } from "@kubb/react-fabric/types";
6
6
 
@@ -929,6 +929,39 @@ type Logger<TOptions extends LoggerOptions = LoggerOptions> = {
929
929
  install: (context: LoggerContext, options?: TOptions) => void | Promise<void>;
930
930
  };
931
931
  type UserLogger<TOptions extends LoggerOptions = LoggerOptions> = Logger<TOptions>;
932
+ /**
933
+ * Compatibility preset for code generation tools.
934
+ * - `'default'` – no compatibility adjustments (default behavior).
935
+ * - `'kubbV4'` – align generated names and structures with Kubb v4 output.
936
+ */
937
+ type CompatibilityPreset = 'default' | 'kubbV4';
938
+ /**
939
+ * A preset bundles a name, one or more resolvers, and optional AST transformers
940
+ * into a single reusable configuration object.
941
+ *
942
+ * @template TResolver - The concrete resolver type for this preset.
943
+ */
944
+ type Preset<TResolver extends Resolver = Resolver> = {
945
+ /**
946
+ * Unique identifier for this preset.
947
+ */
948
+ name: string;
949
+ /**
950
+ * Ordered list of resolvers applied by this preset (last entry wins on merge).
951
+ */
952
+ resolvers: Array<TResolver>;
953
+ /**
954
+ * Optional AST visitors / transformers applied after resolving.
955
+ */
956
+ transformers?: Array<Visitor>;
957
+ };
958
+ /**
959
+ * A named registry of presets, keyed by preset name.
960
+ *
961
+ * @template TResolver - The concrete resolver type shared by all presets in this registry.
962
+ * @template TName - The union of valid preset name keys.
963
+ */
964
+ type Presets<TResolver extends Resolver = Resolver> = Record<CompatibilityPreset, Preset<TResolver>>;
932
965
  //#endregion
933
966
  //#region src/PluginDriver.d.ts
934
967
  type RequiredPluginLifecycle = Required<PluginLifecycle>;
@@ -1051,5 +1084,5 @@ declare class PluginDriver {
1051
1084
  getPluginsByName(hookName: keyof PluginWithLifeCycle, pluginName: string): Plugin[];
1052
1085
  }
1053
1086
  //#endregion
1054
- export { UserConfig as A, Storage as B, PluginWithLifeCycle as C, ResolveOptionsContext as D, ResolveNameParams as E, CoreGeneratorV2 as F, AsyncEventEmitter as G, formatters as H, Generator as I, ReactGeneratorV2 as L, UserPlugin as M, UserPluginWithLifeCycle as N, ResolvePathParams as O, UserResolver as P, defineGenerator as R, PluginParameter as S, PrinterFactoryOptions as T, linters as U, createStorage as V, logLevel as W, Plugin as _, AdapterFactoryOptions as a, PluginLifecycle as b, Config as c, InputData as d, InputPath as f, Output as g, LoggerOptions as h, Adapter as i, UserLogger as j, Resolver as k, DevtoolsOptions as l, LoggerContext as m, PluginDriver as n, AdapterSource as o, Logger as p, getMode as r, BarrelType as s, GetFileOptions as t, Group as u, PluginContext as v, Printer as w, PluginLifecycleHooks as x, PluginFactoryOptions as y, KubbEvents as z };
1055
- //# sourceMappingURL=PluginDriver-By5lhDKP.d.ts.map
1087
+ export { ResolveOptionsContext as A, ReactGeneratorV2 as B, PluginParameter as C, Printer as D, Presets as E, UserPlugin as F, formatters as G, KubbEvents as H, UserPluginWithLifeCycle as I, AsyncEventEmitter as J, linters as K, UserResolver as L, Resolver as M, UserConfig as N, PrinterFactoryOptions as O, UserLogger as P, CoreGeneratorV2 as R, PluginLifecycleHooks as S, Preset as T, Storage as U, defineGenerator as V, createStorage as W, Output as _, AdapterFactoryOptions as a, PluginFactoryOptions as b, CompatibilityPreset as c, Group as d, InputData as f, LoggerOptions as g, LoggerContext as h, Adapter as i, ResolvePathParams as j, ResolveNameParams as k, Config as l, Logger as m, PluginDriver as n, AdapterSource as o, InputPath as p, logLevel as q, getMode as r, BarrelType as s, GetFileOptions as t, DevtoolsOptions as u, Plugin as v, PluginWithLifeCycle as w, PluginLifecycle as x, PluginContext as y, Generator as z };
1088
+ //# sourceMappingURL=PluginDriver-CNKhDf-w.d.ts.map
package/dist/hooks.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as __name } from "./chunk--u3MIqq1.js";
2
- import { E as ResolveNameParams, O as ResolvePathParams, _ as Plugin, c as Config, n as PluginDriver, t as GetFileOptions, y as PluginFactoryOptions } from "./PluginDriver-By5lhDKP.js";
2
+ import { b as PluginFactoryOptions, j as ResolvePathParams, k as ResolveNameParams, l as Config, n as PluginDriver, t as GetFileOptions, v as Plugin } from "./PluginDriver-CNKhDf-w.js";
3
3
  import { RootNode } from "@kubb/ast/types";
4
4
  import { KubbFile } from "@kubb/fabric-core/types";
5
5
 
package/dist/index.cjs CHANGED
@@ -1447,7 +1447,7 @@ const fsStorage = createStorage(() => ({
1447
1447
  }));
1448
1448
  //#endregion
1449
1449
  //#region package.json
1450
- var version = "5.0.0-alpha.15";
1450
+ var version = "5.0.0-alpha.16";
1451
1451
  //#endregion
1452
1452
  //#region src/utils/diagnostics.ts
1453
1453
  /**
@@ -1852,6 +1852,45 @@ function defineLogger(logger) {
1852
1852
  return logger;
1853
1853
  }
1854
1854
  //#endregion
1855
+ //#region src/definePreset.ts
1856
+ /**
1857
+ * Creates a typed preset object that bundles a name, resolvers, and optional
1858
+ * transformers — the building block for composable plugin presets.
1859
+ *
1860
+ * @example
1861
+ * import { definePreset } from '@kubb/core'
1862
+ * import { resolverTsLegacy } from '@kubb/plugin-ts'
1863
+ *
1864
+ * export const myPreset = definePreset('myPreset', { resolvers: [resolverTsLegacy] })
1865
+ *
1866
+ * @example
1867
+ * // With custom transformers
1868
+ * export const myPreset = definePreset('myPreset', { resolvers: [resolverTsLegacy], transformers: [myTransformer] })
1869
+ */
1870
+ function definePreset(name, { resolvers, transformers }) {
1871
+ return {
1872
+ name,
1873
+ resolvers,
1874
+ transformers
1875
+ };
1876
+ }
1877
+ //#endregion
1878
+ //#region src/definePresets.ts
1879
+ /**
1880
+ * Creates a typed presets registry object — a named collection of {@link Preset} entries.
1881
+ *
1882
+ * @example
1883
+ * import { definePreset, definePresets } from '@kubb/core'
1884
+ * import { resolverTsLegacy } from '@kubb/plugin-ts'
1885
+ *
1886
+ * export const myPresets = definePresets({
1887
+ * kubbV4: definePreset('kubbV4', { resolvers: [resolverTsLegacy] }),
1888
+ * })
1889
+ */
1890
+ function definePresets(presets) {
1891
+ return presets;
1892
+ }
1893
+ //#endregion
1855
1894
  //#region src/defineResolver.ts
1856
1895
  /**
1857
1896
  * Checks if an operation matches a pattern for a given filter type (`tag`, `operationId`, `path`, `method`).
@@ -2375,6 +2414,31 @@ async function getConfigs(config, args) {
2375
2414
  return (Array.isArray(resolved) ? resolved : [resolved]).map((item) => ({ ...item }));
2376
2415
  }
2377
2416
  //#endregion
2417
+ //#region src/utils/mergeResolvers.ts
2418
+ /**
2419
+ * Merges an array of resolvers into a single resolver. Later entries override earlier ones (last wins).
2420
+ */
2421
+ function mergeResolvers(...resolvers) {
2422
+ return resolvers.reduce((acc, curr) => ({
2423
+ ...acc,
2424
+ ...curr
2425
+ }), resolvers[0]);
2426
+ }
2427
+ //#endregion
2428
+ //#region src/utils/getPreset.ts
2429
+ function getPreset(params) {
2430
+ const { preset: presetName, presets, resolvers, transformers: userTransformers } = params;
2431
+ const [defaultResolver, ...userResolvers] = resolvers;
2432
+ const preset = presets[presetName];
2433
+ const baseResolver = mergeResolvers(defaultResolver, ...preset?.resolvers ?? []);
2434
+ return {
2435
+ baseResolver,
2436
+ resolver: mergeResolvers(baseResolver, ...userResolvers ?? []),
2437
+ transformers: [...preset?.transformers ?? [], ...userTransformers ?? []],
2438
+ preset
2439
+ };
2440
+ }
2441
+ //#endregion
2378
2442
  //#region src/utils/linters.ts
2379
2443
  async function isLinterAvailable(linter) {
2380
2444
  try {
@@ -2393,17 +2457,6 @@ async function detectLinter() {
2393
2457
  for (const linter of linterNames) if (await isLinterAvailable(linter)) return linter;
2394
2458
  }
2395
2459
  //#endregion
2396
- //#region src/utils/mergeResolvers.ts
2397
- /**
2398
- * Merges an array of resolvers into a single resolver. Later entries override earlier ones (last wins).
2399
- */
2400
- function mergeResolvers(...resolvers) {
2401
- return resolvers.reduce((acc, curr) => ({
2402
- ...acc,
2403
- ...curr
2404
- }), resolvers[0]);
2405
- }
2406
- //#endregion
2407
2460
  //#region src/utils/packageJSON.ts
2408
2461
  function getPackageJSONSync(cwd) {
2409
2462
  const pkgPath = empathic_package.up({ cwd });
@@ -2443,6 +2496,8 @@ exports.defaultResolveOptions = defaultResolveOptions;
2443
2496
  exports.defineConfig = defineConfig;
2444
2497
  exports.defineGenerator = defineGenerator;
2445
2498
  exports.defineLogger = defineLogger;
2499
+ exports.definePreset = definePreset;
2500
+ exports.definePresets = definePresets;
2446
2501
  Object.defineProperty(exports, "definePrinter", {
2447
2502
  enumerable: true,
2448
2503
  get: function() {
@@ -2457,6 +2512,7 @@ exports.fsStorage = fsStorage;
2457
2512
  exports.getBarrelFiles = getBarrelFiles;
2458
2513
  exports.getConfigs = getConfigs;
2459
2514
  exports.getMode = getMode;
2515
+ exports.getPreset = getPreset;
2460
2516
  exports.isInputPath = isInputPath;
2461
2517
  exports.linters = linters;
2462
2518
  exports.logLevel = logLevel;