@kubb/core 4.3.1 → 4.4.1
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/{URLPath-BYceu_vY.js → URLPath-DbWtfVa1.js} +2 -3
- package/dist/{URLPath-BYceu_vY.js.map → URLPath-DbWtfVa1.js.map} +1 -1
- package/dist/{URLPath-8WVzHBnA.cjs → URLPath-Dir2mxRT.cjs} +6 -7
- package/dist/{URLPath-8WVzHBnA.cjs.map → URLPath-Dir2mxRT.cjs.map} +1 -1
- package/dist/{chunk-CZg_9w7l.cjs → chunk-CUT6urMc.cjs} +0 -23
- package/dist/hooks.cjs +6 -6
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.cts +5 -5
- package/dist/hooks.d.ts +5 -5
- package/dist/hooks.js +1 -1
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +128 -62
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22 -18
- package/dist/index.d.ts +22 -18
- package/dist/index.js +116 -53
- package/dist/index.js.map +1 -1
- package/dist/{logger-BXL0YCrv.cjs → logger-BIzTtBYJ.cjs} +48 -5
- package/dist/logger-BIzTtBYJ.cjs.map +1 -0
- package/dist/{logger-DpoDtxfo.d.cts → logger-BjfDkvkn.d.cts} +1 -1
- package/dist/{logger-BA-za85-.d.ts → logger-BwhJWK-H.d.ts} +1 -1
- package/dist/{logger-CDxSrFkR.js → logger-Bxe022ug.js} +39 -4
- package/dist/logger-Bxe022ug.js.map +1 -0
- package/dist/logger.cjs +1 -2
- package/dist/logger.d.cts +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.js +1 -2
- package/dist/{prompt-DgONOpPH.cjs → prompt-D5DZPtWc.cjs} +2 -2
- package/dist/{prompt-DgONOpPH.cjs.map → prompt-D5DZPtWc.cjs.map} +1 -1
- package/dist/{prompt-DBVnG4Me.js → prompt-xM0onfy8.js} +1 -1
- package/dist/{prompt-DBVnG4Me.js.map → prompt-xM0onfy8.js.map} +1 -1
- package/dist/transformers-CeNW0G32.js +339 -0
- package/dist/transformers-CeNW0G32.js.map +1 -0
- package/dist/transformers-DWLXDYKb.cjs +443 -0
- package/dist/transformers-DWLXDYKb.cjs.map +1 -0
- package/dist/transformers.cjs +7 -6
- package/dist/transformers.js +1 -3
- package/dist/{types-DPeNK0FO.d.ts → types-CVONMhN_.d.cts} +51 -53
- package/dist/{types-DNxlynJr.d.cts → types-CyDeSlGF.d.ts} +51 -53
- package/dist/{types-BzI9JlV8.d.ts → types-DCR_QgGt.d.ts} +1 -1
- package/dist/{types-C3ea5qNG.d.cts → types-DueAg3XP.d.cts} +1 -1
- package/dist/utils.cjs +7 -7
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +4 -6
- package/dist/utils.js.map +1 -1
- package/package.json +15 -20
- package/src/BarrelManager.ts +1 -1
- package/src/FileManager.ts +5 -2
- package/src/PluginManager.ts +4 -8
- package/src/build.ts +39 -42
- package/src/fs/index.ts +0 -7
- package/src/hooks/useMode.ts +2 -2
- package/src/hooks/usePlugin.ts +1 -1
- package/src/hooks/usePluginManager.ts +1 -1
- package/src/plugin.ts +10 -5
- package/src/types.ts +3 -2
- package/src/utils/TreeNode.ts +1 -1
- package/dist/acorn-BAVXZMtK.cjs +0 -5082
- package/dist/acorn-BAVXZMtK.cjs.map +0 -1
- package/dist/acorn-D-VhIOLw.js +0 -5080
- package/dist/acorn-D-VhIOLw.js.map +0 -1
- package/dist/angular-Bp0XO9db.cjs +0 -3631
- package/dist/angular-Bp0XO9db.cjs.map +0 -1
- package/dist/angular-Czhp4eq5.js +0 -3629
- package/dist/angular-Czhp4eq5.js.map +0 -1
- package/dist/babel-DCR_B4Qn.js +0 -10033
- package/dist/babel-DCR_B4Qn.js.map +0 -1
- package/dist/babel-NI0v59ga.cjs +0 -10035
- package/dist/babel-NI0v59ga.cjs.map +0 -1
- package/dist/casing-BSeq_teY.js +0 -100
- package/dist/casing-BSeq_teY.js.map +0 -1
- package/dist/casing-CP-9GGdK.cjs +0 -112
- package/dist/casing-CP-9GGdK.cjs.map +0 -1
- package/dist/chunk-1SJ2vVWa.js +0 -35
- package/dist/estree-C3BZPlpU.cjs +0 -6930
- package/dist/estree-C3BZPlpU.cjs.map +0 -1
- package/dist/estree-DU2NummP.js +0 -6926
- package/dist/estree-DU2NummP.js.map +0 -1
- package/dist/flow-CWUBUkoi.cjs +0 -52252
- package/dist/flow-CWUBUkoi.cjs.map +0 -1
- package/dist/flow-JiEbweKj.js +0 -52250
- package/dist/flow-JiEbweKj.js.map +0 -1
- package/dist/fs-BIPMUfpW.js +0 -90
- package/dist/fs-BIPMUfpW.js.map +0 -1
- package/dist/fs-RSVoUw3S.cjs +0 -141
- package/dist/fs-RSVoUw3S.cjs.map +0 -1
- package/dist/fs.cjs +0 -17
- package/dist/fs.d.cts +0 -2
- package/dist/fs.d.ts +0 -2
- package/dist/fs.js +0 -4
- package/dist/glimmer-CX9OqG1j.cjs +0 -7275
- package/dist/glimmer-CX9OqG1j.cjs.map +0 -1
- package/dist/glimmer-t9nWn9aE.js +0 -7271
- package/dist/glimmer-t9nWn9aE.js.map +0 -1
- package/dist/graphql-DjErlIi5.js +0 -1897
- package/dist/graphql-DjErlIi5.js.map +0 -1
- package/dist/graphql-GOxQAKxM.cjs +0 -1902
- package/dist/graphql-GOxQAKxM.cjs.map +0 -1
- package/dist/html-CWrdYAhQ.cjs +0 -6560
- package/dist/html-CWrdYAhQ.cjs.map +0 -1
- package/dist/html-_apcbx34.js +0 -6555
- package/dist/html-_apcbx34.js.map +0 -1
- package/dist/index-BTe91LHd.d.ts +0 -145
- package/dist/index-BmQIxvw0.d.cts +0 -144
- package/dist/logger-BXL0YCrv.cjs.map +0 -1
- package/dist/logger-CDxSrFkR.js.map +0 -1
- package/dist/markdown-ckUc3Q6q.js +0 -6750
- package/dist/markdown-ckUc3Q6q.js.map +0 -1
- package/dist/markdown-pzqiRmft.cjs +0 -6755
- package/dist/markdown-pzqiRmft.cjs.map +0 -1
- package/dist/meriyah-BjnGqpUs.js +0 -8928
- package/dist/meriyah-BjnGqpUs.js.map +0 -1
- package/dist/meriyah-D_x7itbT.cjs +0 -8930
- package/dist/meriyah-D_x7itbT.cjs.map +0 -1
- package/dist/mocks.cjs +0 -16830
- package/dist/mocks.cjs.map +0 -1
- package/dist/mocks.d.cts +0 -13
- package/dist/mocks.d.ts +0 -13
- package/dist/mocks.js +0 -16818
- package/dist/mocks.js.map +0 -1
- package/dist/postcss-B_c2wbFu.cjs +0 -6689
- package/dist/postcss-B_c2wbFu.cjs.map +0 -1
- package/dist/postcss-v7BP6SZ-.js +0 -6684
- package/dist/postcss-v7BP6SZ-.js.map +0 -1
- package/dist/transformers-BH0KLJJP.cjs +0 -804
- package/dist/transformers-BH0KLJJP.cjs.map +0 -1
- package/dist/transformers-DzHGqYO2.js +0 -702
- package/dist/transformers-DzHGqYO2.js.map +0 -1
- package/dist/typescript-6kMN6Wqz.cjs +0 -23014
- package/dist/typescript-6kMN6Wqz.cjs.map +0 -1
- package/dist/typescript-B_IBfKSe.js +0 -23002
- package/dist/typescript-B_IBfKSe.js.map +0 -1
- package/dist/typescript-C5hce4HG.cjs +0 -4
- package/dist/typescript-Cas1XcNz.js +0 -3
- package/dist/write-BJfM7G1_.cjs +0 -49
- package/dist/write-BJfM7G1_.cjs.map +0 -1
- package/dist/write-CxO1CDML.js +0 -40
- package/dist/write-CxO1CDML.js.map +0 -1
- package/dist/yaml-BfWM_B73.js +0 -5209
- package/dist/yaml-BfWM_B73.js.map +0 -1
- package/dist/yaml-DZs6MhV1.cjs +0 -5215
- package/dist/yaml-DZs6MhV1.cjs.map +0 -1
- package/src/fs/types.ts +0 -132
- package/src/fs/unlink.ts +0 -5
- package/src/mocks/index.ts +0 -82
package/dist/utils.d.cts
CHANGED
package/dist/utils.d.ts
CHANGED
package/dist/utils.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { t as camelCase } from "./casing-BSeq_teY.js";
|
|
1
|
+
import { m as camelCase } from "./transformers-CeNW0G32.js";
|
|
2
|
+
import { n as getUniqueName, r as setUniqueName, t as URLPath } from "./URLPath-DbWtfVa1.js";
|
|
3
|
+
import { orderBy } from "natural-orderby";
|
|
5
4
|
|
|
6
5
|
//#region src/utils/Cache.ts
|
|
7
6
|
var Cache = class {
|
|
@@ -29,7 +28,6 @@ var Cache = class {
|
|
|
29
28
|
|
|
30
29
|
//#endregion
|
|
31
30
|
//#region src/utils/FunctionParams.ts
|
|
32
|
-
var import_main = /* @__PURE__ */ __toESM(require_main(), 1);
|
|
33
31
|
/**
|
|
34
32
|
* @deprecated
|
|
35
33
|
*/
|
|
@@ -53,7 +51,7 @@ var FunctionParams = class FunctionParams {
|
|
|
53
51
|
return this;
|
|
54
52
|
}
|
|
55
53
|
static #orderItems(items) {
|
|
56
|
-
return
|
|
54
|
+
return orderBy(items.filter(Boolean), [(v) => {
|
|
57
55
|
if (Array.isArray(v)) return;
|
|
58
56
|
return !v.default;
|
|
59
57
|
}, (v) => {
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["#buffer","#items","#orderItems","#addParams","type: string[]","name: string[]","item"],"sources":["../src/utils/Cache.ts","../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts"],"sourcesContent":["export class Cache<T> {\n #buffer = new Map<string, T>()\n\n async get(key: string): Promise<T | null> {\n return this.#buffer.get(key) ?? null\n }\n\n async set(key: string, value: T): Promise<void> {\n this.#buffer.set(key, value)\n }\n\n async delete(key: string): Promise<void> {\n this.#buffer.delete(key)\n }\n\n async clear(): Promise<void> {\n this.#buffer.clear()\n }\n\n async keys(): Promise<string[]> {\n return [...this.#buffer.keys()]\n }\n\n async values(): Promise<T[]> {\n return [...this.#buffer.values()]\n }\n\n async flush(): Promise<void> {\n // No-op for base cache\n }\n}\n","import { orderBy } from 'natural-orderby'\n\nimport { camelCase } from '../transformers/casing.ts'\n\ntype FunctionParamsASTWithoutType = {\n name?: string\n type?: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\ntype FunctionParamsASTWithType = {\n name?: never\n type: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n/**\n * @deprecated\n */\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\n\n/**\n * @deprecated\n */\nexport class FunctionParams {\n #items: Array<FunctionParamsAST | FunctionParamsAST[]> = []\n constructor() {\n return this\n }\n\n get items(): FunctionParamsAST[] {\n return this.#items.flat()\n }\n\n add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams {\n if (!item) {\n return this\n }\n\n if (Array.isArray(item)) {\n item.filter(Boolean).forEach((it) => {\n this.#items.push(it)\n })\n return this\n }\n this.#items.push(item)\n\n return this\n }\n static #orderItems(items: Array<FunctionParamsAST | FunctionParamsAST[]>) {\n return orderBy(\n items.filter(Boolean),\n [\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return !v.default\n },\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return v.required ?? true\n },\n ],\n ['desc', 'desc'],\n )\n }\n\n static #addParams(acc: string[], item: FunctionParamsAST) {\n const { enabled = true, name, type, required = true, ...rest } = item\n\n if (!enabled) {\n return acc\n }\n\n if (!name) {\n // when name is not se we will use TypeScript generics\n acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)\n\n return acc\n }\n // TODO check whey we still need the camelcase here\n const parameterName = name.startsWith('{') ? name : camelCase(name)\n\n if (type) {\n if (required) {\n acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)\n } else {\n acc.push(`${parameterName}?: ${type}`)\n }\n } else {\n acc.push(`${parameterName}`)\n }\n\n return acc\n }\n\n static toObject(items: FunctionParamsAST[]): FunctionParamsAST {\n let type: string[] = []\n let name: string[] = []\n\n const enabled = items.every((item) => item.enabled) ? items.at(0)?.enabled : true\n const required = items.every((item) => item.required) ?? true\n\n items.forEach((item) => {\n name = FunctionParams.#addParams(name, { ...item, type: undefined })\n if (items.some((item) => item.type)) {\n type = FunctionParams.#addParams(type, item)\n }\n })\n\n return {\n name: `{ ${name.join(', ')} }`,\n type: type.length ? `{ ${type.join('; ')} }` : undefined,\n enabled,\n required,\n }\n }\n\n static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string {\n const sortedData = FunctionParams.#orderItems(items)\n\n return sortedData\n .reduce((acc, item) => {\n if (Array.isArray(item)) {\n if (item.length <= 0) {\n return acc\n }\n const subItems = FunctionParams.#orderItems(item) as FunctionParamsAST[]\n const objectItem = FunctionParams.toObject(subItems)\n\n return FunctionParams.#addParams(acc, objectItem)\n }\n\n return FunctionParams.#addParams(acc, item)\n }, [] as string[])\n .join(', ')\n }\n\n toObject(): FunctionParamsAST {\n const items = FunctionParams.#orderItems(this.#items).flat()\n\n return FunctionParams.toObject(items)\n }\n\n toString(): string {\n const items = FunctionParams.#orderItems(this.#items)\n\n return FunctionParams.toString(items)\n }\n}\n","import type { PossiblePromise } from './types.ts'\n\nexport function isPromise<T>(result: PossiblePromise<T>): result is Promise<T> {\n return !!result && typeof (result as Promise<unknown>)?.then === 'function'\n}\n\nexport function isPromiseFulfilledResult<T = unknown>(result: PromiseSettledResult<unknown>): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nexport function isPromiseRejectedResult<T>(result: PromiseSettledResult<unknown>): result is Omit<PromiseRejectedResult, 'reason'> & { reason: T } {\n return result.status === 'rejected'\n}\n","export function renderTemplate<TData extends Record<string, unknown> = Record<string, unknown>>(template: string, data: TData | undefined = undefined): string {\n if (!data || !Object.keys(data).length) {\n return template.replace(/{{(.*?)}}/g, '')\n }\n\n const matches = template.match(/{{(.*?)}}/g)\n\n return (\n matches?.reduce((prev, curr) => {\n const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim()\n if (index === undefined) {\n return prev\n }\n const value = data[index]\n\n if (value === undefined) {\n return prev\n }\n\n return prev\n .replace(curr, () => {\n if (typeof value === 'boolean') {\n return `${value.toString()}` || 'false'\n }\n\n return (value as string) || ''\n })\n .trim()\n }, template) || ''\n )\n}\n","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","names":["#buffer","#items","#orderItems","#addParams","type: string[]","name: string[]","item"],"sources":["../src/utils/Cache.ts","../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts"],"sourcesContent":["export class Cache<T> {\n #buffer = new Map<string, T>()\n\n async get(key: string): Promise<T | null> {\n return this.#buffer.get(key) ?? null\n }\n\n async set(key: string, value: T): Promise<void> {\n this.#buffer.set(key, value)\n }\n\n async delete(key: string): Promise<void> {\n this.#buffer.delete(key)\n }\n\n async clear(): Promise<void> {\n this.#buffer.clear()\n }\n\n async keys(): Promise<string[]> {\n return [...this.#buffer.keys()]\n }\n\n async values(): Promise<T[]> {\n return [...this.#buffer.values()]\n }\n\n async flush(): Promise<void> {\n // No-op for base cache\n }\n}\n","import { orderBy } from 'natural-orderby'\n\nimport { camelCase } from '../transformers/casing.ts'\n\ntype FunctionParamsASTWithoutType = {\n name?: string\n type?: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\ntype FunctionParamsASTWithType = {\n name?: never\n type: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n/**\n * @deprecated\n */\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\n\n/**\n * @deprecated\n */\nexport class FunctionParams {\n #items: Array<FunctionParamsAST | FunctionParamsAST[]> = []\n constructor() {\n return this\n }\n\n get items(): FunctionParamsAST[] {\n return this.#items.flat()\n }\n\n add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams {\n if (!item) {\n return this\n }\n\n if (Array.isArray(item)) {\n item.filter(Boolean).forEach((it) => {\n this.#items.push(it)\n })\n return this\n }\n this.#items.push(item)\n\n return this\n }\n static #orderItems(items: Array<FunctionParamsAST | FunctionParamsAST[]>) {\n return orderBy(\n items.filter(Boolean),\n [\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return !v.default\n },\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return v.required ?? true\n },\n ],\n ['desc', 'desc'],\n )\n }\n\n static #addParams(acc: string[], item: FunctionParamsAST) {\n const { enabled = true, name, type, required = true, ...rest } = item\n\n if (!enabled) {\n return acc\n }\n\n if (!name) {\n // when name is not se we will use TypeScript generics\n acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)\n\n return acc\n }\n // TODO check whey we still need the camelcase here\n const parameterName = name.startsWith('{') ? name : camelCase(name)\n\n if (type) {\n if (required) {\n acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)\n } else {\n acc.push(`${parameterName}?: ${type}`)\n }\n } else {\n acc.push(`${parameterName}`)\n }\n\n return acc\n }\n\n static toObject(items: FunctionParamsAST[]): FunctionParamsAST {\n let type: string[] = []\n let name: string[] = []\n\n const enabled = items.every((item) => item.enabled) ? items.at(0)?.enabled : true\n const required = items.every((item) => item.required) ?? true\n\n items.forEach((item) => {\n name = FunctionParams.#addParams(name, { ...item, type: undefined })\n if (items.some((item) => item.type)) {\n type = FunctionParams.#addParams(type, item)\n }\n })\n\n return {\n name: `{ ${name.join(', ')} }`,\n type: type.length ? `{ ${type.join('; ')} }` : undefined,\n enabled,\n required,\n }\n }\n\n static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string {\n const sortedData = FunctionParams.#orderItems(items)\n\n return sortedData\n .reduce((acc, item) => {\n if (Array.isArray(item)) {\n if (item.length <= 0) {\n return acc\n }\n const subItems = FunctionParams.#orderItems(item) as FunctionParamsAST[]\n const objectItem = FunctionParams.toObject(subItems)\n\n return FunctionParams.#addParams(acc, objectItem)\n }\n\n return FunctionParams.#addParams(acc, item)\n }, [] as string[])\n .join(', ')\n }\n\n toObject(): FunctionParamsAST {\n const items = FunctionParams.#orderItems(this.#items).flat()\n\n return FunctionParams.toObject(items)\n }\n\n toString(): string {\n const items = FunctionParams.#orderItems(this.#items)\n\n return FunctionParams.toString(items)\n }\n}\n","import type { PossiblePromise } from './types.ts'\n\nexport function isPromise<T>(result: PossiblePromise<T>): result is Promise<T> {\n return !!result && typeof (result as Promise<unknown>)?.then === 'function'\n}\n\nexport function isPromiseFulfilledResult<T = unknown>(result: PromiseSettledResult<unknown>): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nexport function isPromiseRejectedResult<T>(result: PromiseSettledResult<unknown>): result is Omit<PromiseRejectedResult, 'reason'> & { reason: T } {\n return result.status === 'rejected'\n}\n","export function renderTemplate<TData extends Record<string, unknown> = Record<string, unknown>>(template: string, data: TData | undefined = undefined): string {\n if (!data || !Object.keys(data).length) {\n return template.replace(/{{(.*?)}}/g, '')\n }\n\n const matches = template.match(/{{(.*?)}}/g)\n\n return (\n matches?.reduce((prev, curr) => {\n const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim()\n if (index === undefined) {\n return prev\n }\n const value = data[index]\n\n if (value === undefined) {\n return prev\n }\n\n return prev\n .replace(curr, () => {\n if (typeof value === 'boolean') {\n return `${value.toString()}` || 'false'\n }\n\n return (value as string) || ''\n })\n .trim()\n }, template) || ''\n )\n}\n","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n"],"mappings":";;;;;AAAA,IAAa,QAAb,MAAsB;CACpB,0BAAU,IAAI,KAAgB;CAE9B,MAAM,IAAI,KAAgC;AACxC,SAAO,MAAKA,OAAQ,IAAI,IAAI,IAAI;;CAGlC,MAAM,IAAI,KAAa,OAAyB;AAC9C,QAAKA,OAAQ,IAAI,KAAK,MAAM;;CAG9B,MAAM,OAAO,KAA4B;AACvC,QAAKA,OAAQ,OAAO,IAAI;;CAG1B,MAAM,QAAuB;AAC3B,QAAKA,OAAQ,OAAO;;CAGtB,MAAM,OAA0B;AAC9B,SAAO,CAAC,GAAG,MAAKA,OAAQ,MAAM,CAAC;;CAGjC,MAAM,SAAuB;AAC3B,SAAO,CAAC,GAAG,MAAKA,OAAQ,QAAQ,CAAC;;CAGnC,MAAM,QAAuB;;;;;;;;ACY/B,IAAa,iBAAb,MAAa,eAAe;CAC1B,SAAyD,EAAE;CAC3D,cAAc;AACZ,SAAO;;CAGT,IAAI,QAA6B;AAC/B,SAAO,MAAKC,MAAO,MAAM;;CAG3B,IAAI,MAAkH;AACpH,MAAI,CAAC,KACH,QAAO;AAGT,MAAI,MAAM,QAAQ,KAAK,EAAE;AACvB,QAAK,OAAO,QAAQ,CAAC,SAAS,OAAO;AACnC,UAAKA,MAAO,KAAK,GAAG;KACpB;AACF,UAAO;;AAET,QAAKA,MAAO,KAAK,KAAK;AAEtB,SAAO;;CAET,QAAOC,WAAY,OAAuD;AACxE,SAAO,QACL,MAAM,OAAO,QAAQ,EACrB,EACG,MAAM;AACL,OAAI,MAAM,QAAQ,EAAE,CAClB;AAEF,UAAO,CAAC,EAAE;MAEX,MAAM;AACL,OAAI,MAAM,QAAQ,EAAE,CAClB;AAEF,UAAO,EAAE,YAAY;IAExB,EACD,CAAC,QAAQ,OAAO,CACjB;;CAGH,QAAOC,UAAW,KAAe,MAAyB;EACxD,MAAM,EAAE,UAAU,MAAM,MAAM,MAAM,WAAW,KAAM,GAAG,SAAS;AAEjE,MAAI,CAAC,QACH,QAAO;AAGT,MAAI,CAAC,MAAM;AAET,OAAI,KAAK,GAAG,OAAO,KAAK,UAAU,MAAM,KAAK,YAAY,KAAK;AAE9D,UAAO;;EAGT,MAAM,gBAAgB,KAAK,WAAW,IAAI,GAAG,OAAO,UAAU,KAAK;AAEnE,MAAI,KACF,KAAI,SACF,KAAI,KAAK,GAAG,cAAc,IAAI,OAAO,KAAK,UAAU,MAAM,KAAK,YAAY,KAAK;MAEhF,KAAI,KAAK,GAAG,cAAc,KAAK,OAAO;MAGxC,KAAI,KAAK,GAAG,gBAAgB;AAG9B,SAAO;;CAGT,OAAO,SAAS,OAA+C;EAC7D,IAAIC,OAAiB,EAAE;EACvB,IAAIC,OAAiB,EAAE;EAEvB,MAAM,UAAU,MAAM,OAAO,SAAS,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,EAAE,UAAU;EAC7E,MAAM,WAAW,MAAM,OAAO,SAAS,KAAK,SAAS,IAAI;AAEzD,QAAM,SAAS,SAAS;AACtB,UAAO,gBAAeF,UAAW,MAAM;IAAE,GAAG;IAAM,MAAM;IAAW,CAAC;AACpE,OAAI,MAAM,MAAM,WAASG,OAAK,KAAK,CACjC,QAAO,gBAAeH,UAAW,MAAM,KAAK;IAE9C;AAEF,SAAO;GACL,MAAM,KAAK,KAAK,KAAK,KAAK,CAAC;GAC3B,MAAM,KAAK,SAAS,KAAK,KAAK,KAAK,KAAK,CAAC,MAAM;GAC/C;GACA;GACD;;CAGH,OAAO,SAAS,OAA4D;AAG1E,SAFmB,gBAAeD,WAAY,MAAM,CAGjD,QAAQ,KAAK,SAAS;AACrB,OAAI,MAAM,QAAQ,KAAK,EAAE;AACvB,QAAI,KAAK,UAAU,EACjB,QAAO;IAET,MAAM,WAAW,gBAAeA,WAAY,KAAK;IACjD,MAAM,aAAa,eAAe,SAAS,SAAS;AAEpD,WAAO,gBAAeC,UAAW,KAAK,WAAW;;AAGnD,UAAO,gBAAeA,UAAW,KAAK,KAAK;KAC1C,EAAE,CAAa,CACjB,KAAK,KAAK;;CAGf,WAA8B;EAC5B,MAAM,QAAQ,gBAAeD,WAAY,MAAKD,MAAO,CAAC,MAAM;AAE5D,SAAO,eAAe,SAAS,MAAM;;CAGvC,WAAmB;EACjB,MAAM,QAAQ,gBAAeC,WAAY,MAAKD,MAAO;AAErD,SAAO,eAAe,SAAS,MAAM;;;;;;ACnKzC,SAAgB,UAAa,QAAkD;AAC7E,QAAO,CAAC,CAAC,UAAU,OAAQ,QAA6B,SAAS;;AAGnE,SAAgB,yBAAsC,QAA4E;AAChI,QAAO,OAAO,WAAW;;AAG3B,SAAgB,wBAA2B,QAAwG;AACjJ,QAAO,OAAO,WAAW;;;;;ACX3B,SAAgB,eAAgF,UAAkB,OAA0B,QAAmB;AAC7J,KAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,OAC9B,QAAO,SAAS,QAAQ,cAAc,GAAG;AAK3C,QAFgB,SAAS,MAAM,aAAa,EAGjC,QAAQ,MAAM,SAAS;EAC9B,MAAM,QAAQ,KAAK,MAAM,QAAQ,CAAC,OAAO,QAAQ,CAAC,IAAI,MAAM;AAC5D,MAAI,UAAU,OACZ,QAAO;EAET,MAAM,QAAQ,KAAK;AAEnB,MAAI,UAAU,OACZ,QAAO;AAGT,SAAO,KACJ,QAAQ,YAAY;AACnB,OAAI,OAAO,UAAU,UACnB,QAAO,GAAG,MAAM,UAAU,MAAM;AAGlC,UAAQ,SAAoB;IAC5B,CACD,MAAM;IACR,SAAS,IAAI;;;;;AC5BpB,eAAsB,QAAQ,IAA8B;AAC1D,QAAO,IAAI,SAAS,YAAY;AAC9B,mBAAiB;AACf,WAAQ,KAAK;KACZ,GAAG;GACN"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.1",
|
|
4
4
|
"description": "Core functionality for Kubb's plugin-based code generation system, providing the foundation for transforming OpenAPI specifications.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -26,10 +26,6 @@
|
|
|
26
26
|
"import": "./dist/index.js",
|
|
27
27
|
"require": "./dist/index.cjs"
|
|
28
28
|
},
|
|
29
|
-
"./fs": {
|
|
30
|
-
"import": "./dist/fs.js",
|
|
31
|
-
"require": "./dist/fs.cjs"
|
|
32
|
-
},
|
|
33
29
|
"./hooks": {
|
|
34
30
|
"import": "./dist/hooks.js",
|
|
35
31
|
"require": "./dist/hooks.cjs"
|
|
@@ -38,10 +34,6 @@
|
|
|
38
34
|
"import": "./dist/logger.js",
|
|
39
35
|
"require": "./dist/logger.cjs"
|
|
40
36
|
},
|
|
41
|
-
"./mocks": {
|
|
42
|
-
"import": "./dist/mocks.js",
|
|
43
|
-
"require": "./dist/mocks.cjs"
|
|
44
|
-
},
|
|
45
37
|
"./transformers": {
|
|
46
38
|
"import": "./dist/transformers.js",
|
|
47
39
|
"require": "./dist/transformers.cjs"
|
|
@@ -66,9 +58,6 @@
|
|
|
66
58
|
"logger": [
|
|
67
59
|
"./dist/logger.d.ts"
|
|
68
60
|
],
|
|
69
|
-
"mocks": [
|
|
70
|
-
"./dist/mocks.d.ts"
|
|
71
|
-
],
|
|
72
61
|
"hooks": [
|
|
73
62
|
"./dist/hooks.d.ts"
|
|
74
63
|
],
|
|
@@ -86,9 +75,15 @@
|
|
|
86
75
|
"!/**/**.test.**",
|
|
87
76
|
"!/**/__tests__/**"
|
|
88
77
|
],
|
|
78
|
+
"size-limit": [
|
|
79
|
+
{
|
|
80
|
+
"path": "./dist/*.js",
|
|
81
|
+
"limit": "510 KiB",
|
|
82
|
+
"gzip": true
|
|
83
|
+
}
|
|
84
|
+
],
|
|
89
85
|
"dependencies": {
|
|
90
|
-
"@kubb/fabric
|
|
91
|
-
"@kubb/parser-ts": "^4.1.4",
|
|
86
|
+
"@kubb/react-fabric": "0.2.10",
|
|
92
87
|
"camelcase": "^8.0.0",
|
|
93
88
|
"find-up": "^7.0.0",
|
|
94
89
|
"fs-extra": "^11.3.2",
|
|
@@ -99,8 +94,7 @@
|
|
|
99
94
|
"picocolors": "^1.1.1",
|
|
100
95
|
"remeda": "^2.32.0",
|
|
101
96
|
"seedrandom": "^3.0.5",
|
|
102
|
-
"semver": "^7.7.3"
|
|
103
|
-
"@kubb/react": "4.3.1"
|
|
97
|
+
"semver": "^7.7.3"
|
|
104
98
|
},
|
|
105
99
|
"devDependencies": {
|
|
106
100
|
"@types/fs-extra": "^11.0.4",
|
|
@@ -108,12 +102,13 @@
|
|
|
108
102
|
"@types/seedrandom": "^3.0.8",
|
|
109
103
|
"@types/semver": "^7.7.1",
|
|
110
104
|
"consola": "^3.4.2",
|
|
111
|
-
"tsdown": "^0.15.9",
|
|
112
|
-
"typescript": "^5.9.3",
|
|
113
105
|
"zod": "^4.1.12"
|
|
114
106
|
},
|
|
107
|
+
"optionalDependencies": {
|
|
108
|
+
"@kubb/fabric-core": "0.2.10"
|
|
109
|
+
},
|
|
115
110
|
"peerDependencies": {
|
|
116
|
-
"@kubb/react": "
|
|
111
|
+
"@kubb/react-fabric": "0.2.10"
|
|
117
112
|
},
|
|
118
113
|
"engines": {
|
|
119
114
|
"node": ">=20"
|
|
@@ -123,7 +118,7 @@
|
|
|
123
118
|
"registry": "https://registry.npmjs.org/"
|
|
124
119
|
},
|
|
125
120
|
"scripts": {
|
|
126
|
-
"build": "tsdown",
|
|
121
|
+
"build": "tsdown && size-limit",
|
|
127
122
|
"clean": "npx rimraf ./dist",
|
|
128
123
|
"lint": "bun biome lint .",
|
|
129
124
|
"lint:fix": "bun biome lint --fix --unsafe .",
|
package/src/BarrelManager.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** biome-ignore-all lint/suspicious/useIterableCallbackReturn: not needed */
|
|
2
2
|
import { join } from 'node:path'
|
|
3
|
+
import type { KubbFile } from '@kubb/fabric-core/types'
|
|
3
4
|
import type { FileMetaBase } from './FileManager.ts'
|
|
4
|
-
import type { KubbFile } from './fs/index.ts'
|
|
5
5
|
import { getRelativePath } from './fs/index.ts'
|
|
6
6
|
import type { Logger } from './logger.ts'
|
|
7
7
|
import { TreeNode } from './utils/TreeNode.ts'
|
package/src/FileManager.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { extname, join } from 'node:path'
|
|
2
|
+
import type { KubbFile } from '@kubb/fabric-core/types'
|
|
2
3
|
import { BarrelManager } from './BarrelManager.ts'
|
|
3
|
-
import type { KubbFile } from './fs/index.ts'
|
|
4
|
-
import { trimExtName } from './fs/index.ts'
|
|
5
4
|
import type { Logger } from './logger.ts'
|
|
6
5
|
import type { BarrelType, Plugin } from './types.ts'
|
|
7
6
|
|
|
@@ -37,6 +36,10 @@ export function getMode(path: string | undefined | null): KubbFile.Mode {
|
|
|
37
36
|
return extname(path) ? 'single' : 'split'
|
|
38
37
|
}
|
|
39
38
|
|
|
39
|
+
function trimExtName(text: string): string {
|
|
40
|
+
return text.replace(/\.[^/.]+$/, '')
|
|
41
|
+
}
|
|
42
|
+
|
|
40
43
|
export async function getBarrelFiles(
|
|
41
44
|
files: Array<KubbFile.ResolvedFile>,
|
|
42
45
|
{ type, meta = {}, root, output, logger }: AddIndexesProps,
|
package/src/PluginManager.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { KubbFile } from '@kubb/fabric-core/types'
|
|
2
|
+
import type { Fabric } from '@kubb/react-fabric'
|
|
2
3
|
import { ValidationPluginError } from './errors.ts'
|
|
3
|
-
import type { KubbFile } from './fs/index.ts'
|
|
4
4
|
import type { Logger } from './logger.ts'
|
|
5
5
|
import { isPromiseRejectedResult, PromiseManager } from './PromiseManager.ts'
|
|
6
6
|
import type { PluginCore } from './plugin.ts'
|
|
@@ -47,6 +47,7 @@ type SafeParseResult<H extends PluginLifecycleHooks, Result = ReturnType<ParseRe
|
|
|
47
47
|
// inspired by: https://github.com/rollup/rollup/blob/master/src/utils/PluginDriver.ts#
|
|
48
48
|
|
|
49
49
|
type Options = {
|
|
50
|
+
fabric: Fabric
|
|
50
51
|
logger: Logger
|
|
51
52
|
/**
|
|
52
53
|
* @default Number.POSITIVE_INFINITY
|
|
@@ -70,10 +71,6 @@ type GetFileProps<TOptions = object> = {
|
|
|
70
71
|
|
|
71
72
|
export class PluginManager {
|
|
72
73
|
readonly plugins = new Set<Plugin<GetPluginFactoryOptions<any>>>()
|
|
73
|
-
/**
|
|
74
|
-
* @deprecated do not use from pluginManager
|
|
75
|
-
*/
|
|
76
|
-
readonly fileManager: FileManager
|
|
77
74
|
readonly events: EventEmitter<Events> = new EventEmitter()
|
|
78
75
|
|
|
79
76
|
readonly config: Config
|
|
@@ -90,16 +87,15 @@ export class PluginManager {
|
|
|
90
87
|
this.config = config
|
|
91
88
|
this.options = options
|
|
92
89
|
this.logger = options.logger
|
|
93
|
-
this.fileManager = new FileManager()
|
|
94
90
|
this.#promiseManager = new PromiseManager({
|
|
95
91
|
nullCheck: (state: SafeParseResult<'resolveName'> | null) => !!state?.result,
|
|
96
92
|
})
|
|
97
93
|
|
|
98
94
|
const core = pluginCore({
|
|
95
|
+
fabric: options.fabric,
|
|
99
96
|
config,
|
|
100
97
|
logger: this.logger,
|
|
101
98
|
pluginManager: this,
|
|
102
|
-
fileManager: this.fileManager,
|
|
103
99
|
resolvePath: this.resolvePath.bind(this),
|
|
104
100
|
resolveName: this.resolveName.bind(this),
|
|
105
101
|
getPlugins: this.#getSortedPlugins.bind(this),
|
package/src/build.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { join, relative, resolve } from 'node:path'
|
|
2
|
-
import {
|
|
2
|
+
import type { KubbFile } from '@kubb/fabric-core/types'
|
|
3
|
+
import type { Fabric } from '@kubb/react-fabric'
|
|
4
|
+
import { createFabric } from '@kubb/react-fabric'
|
|
5
|
+
import { typescriptParser } from '@kubb/react-fabric/parsers'
|
|
6
|
+
import { fsPlugin } from '@kubb/react-fabric/plugins'
|
|
3
7
|
import pc from 'picocolors'
|
|
4
8
|
import { isDeepEqual } from 'remeda'
|
|
5
9
|
import { isInputPath } from './config.ts'
|
|
6
|
-
import { clean, exists, getRelativePath,
|
|
10
|
+
import { clean, exists, getRelativePath, write } from './fs/index.ts'
|
|
7
11
|
import type { Logger } from './logger.ts'
|
|
8
12
|
import { createLogger } from './logger.ts'
|
|
9
13
|
import { PluginManager } from './PluginManager.ts'
|
|
@@ -16,10 +20,10 @@ type BuildOptions = {
|
|
|
16
20
|
* @default Logger without the spinner
|
|
17
21
|
*/
|
|
18
22
|
logger?: Logger
|
|
19
|
-
pluginManager?: PluginManager
|
|
20
23
|
}
|
|
21
24
|
|
|
22
25
|
type BuildOutput = {
|
|
26
|
+
fabric: Fabric
|
|
23
27
|
files: Array<KubbFile.ResolvedFile>
|
|
24
28
|
pluginManager: PluginManager
|
|
25
29
|
/**
|
|
@@ -28,11 +32,12 @@ type BuildOutput = {
|
|
|
28
32
|
error?: Error
|
|
29
33
|
}
|
|
30
34
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
type SetupResult = {
|
|
36
|
+
fabric: Fabric
|
|
37
|
+
pluginManager: PluginManager
|
|
38
|
+
}
|
|
35
39
|
|
|
40
|
+
export async function setup(options: BuildOptions): Promise<SetupResult> {
|
|
36
41
|
const { config: userConfig, logger = createLogger() } = options
|
|
37
42
|
|
|
38
43
|
if (Array.isArray(userConfig.input)) {
|
|
@@ -74,38 +79,39 @@ export async function setup(options: BuildOptions): Promise<PluginManager> {
|
|
|
74
79
|
await clean(join(definedConfig.root, '.kubb'))
|
|
75
80
|
}
|
|
76
81
|
|
|
77
|
-
|
|
82
|
+
const fabric = createFabric()
|
|
83
|
+
fabric.use(fsPlugin, { dryRun: !definedConfig.output.write })
|
|
84
|
+
fabric.use(typescriptParser)
|
|
85
|
+
|
|
86
|
+
const pluginManager = new PluginManager(definedConfig, { fabric, logger, concurrency: 5 })
|
|
87
|
+
|
|
88
|
+
return {
|
|
89
|
+
fabric,
|
|
90
|
+
pluginManager,
|
|
91
|
+
}
|
|
78
92
|
}
|
|
79
93
|
|
|
80
|
-
export async function build(options: BuildOptions): Promise<BuildOutput> {
|
|
81
|
-
const { files, pluginManager, error } = await safeBuild(options)
|
|
94
|
+
export async function build(options: BuildOptions, overrides?: SetupResult): Promise<BuildOutput> {
|
|
95
|
+
const { fabric, files, pluginManager, error } = await safeBuild(options, overrides)
|
|
82
96
|
|
|
83
|
-
if (error)
|
|
97
|
+
if (error) {
|
|
98
|
+
throw error
|
|
99
|
+
}
|
|
84
100
|
|
|
85
101
|
return {
|
|
102
|
+
fabric,
|
|
86
103
|
files,
|
|
87
104
|
pluginManager,
|
|
88
105
|
error,
|
|
89
106
|
}
|
|
90
107
|
}
|
|
91
108
|
|
|
92
|
-
export async function safeBuild(options: BuildOptions): Promise<BuildOutput> {
|
|
93
|
-
const pluginManager = await setup(options)
|
|
109
|
+
export async function safeBuild(options: BuildOptions, overrides?: SetupResult): Promise<BuildOutput> {
|
|
110
|
+
const { fabric, pluginManager } = overrides ? overrides : await setup(options)
|
|
94
111
|
|
|
95
112
|
const config = pluginManager.config
|
|
96
113
|
|
|
97
114
|
try {
|
|
98
|
-
pluginManager.events.on('executing', ({ plugin, message }) => {
|
|
99
|
-
pluginManager.logger.emit('debug', { date: new Date(), logs: [`Executing pluginKey ${plugin.key?.join('.')} | ${message}`] })
|
|
100
|
-
})
|
|
101
|
-
|
|
102
|
-
pluginManager.events.on('executed', ({ plugin, message, output }) => {
|
|
103
|
-
pluginManager.logger.emit('debug', {
|
|
104
|
-
date: new Date(),
|
|
105
|
-
logs: [`Executed pluginKey ${plugin.key?.join('.')} | ${message} | ${JSON.stringify(output, undefined, 2)}`],
|
|
106
|
-
})
|
|
107
|
-
})
|
|
108
|
-
|
|
109
115
|
await pluginManager.hookParallel({
|
|
110
116
|
hookName: 'buildStart',
|
|
111
117
|
parameters: [config],
|
|
@@ -113,14 +119,10 @@ export async function safeBuild(options: BuildOptions): Promise<BuildOutput> {
|
|
|
113
119
|
})
|
|
114
120
|
|
|
115
121
|
if (config.output.barrelType) {
|
|
116
|
-
// create root barrel file
|
|
117
122
|
const root = resolve(config.root)
|
|
118
123
|
const rootPath = resolve(root, config.output.path, 'index.ts')
|
|
119
124
|
|
|
120
|
-
|
|
121
|
-
const files = await pluginManager.fileManager.files
|
|
122
|
-
|
|
123
|
-
const barrelFiles = files.filter((file) => {
|
|
125
|
+
const barrelFiles = fabric.files.filter((file) => {
|
|
124
126
|
return file.sources.some((source) => source.isIndexable)
|
|
125
127
|
})
|
|
126
128
|
|
|
@@ -161,14 +163,14 @@ export async function safeBuild(options: BuildOptions): Promise<BuildOutput> {
|
|
|
161
163
|
meta: {},
|
|
162
164
|
}
|
|
163
165
|
|
|
164
|
-
await
|
|
166
|
+
await fabric.addFile(rootFile)
|
|
165
167
|
}
|
|
166
168
|
|
|
167
|
-
|
|
169
|
+
fabric.context.events.on('process:start', ({ files }) => {
|
|
168
170
|
pluginManager.logger.emit('progress_start', { id: 'files', size: files.length, message: 'Writing files ...' })
|
|
169
171
|
})
|
|
170
172
|
|
|
171
|
-
|
|
173
|
+
fabric.context.events.on('process:progress', async ({ file, source }) => {
|
|
172
174
|
const message = file ? `Writing ${relative(config.root, file.path)}` : ''
|
|
173
175
|
pluginManager.logger.emit('progressed', { id: 'files', message })
|
|
174
176
|
|
|
@@ -177,28 +179,23 @@ export async function safeBuild(options: BuildOptions): Promise<BuildOutput> {
|
|
|
177
179
|
}
|
|
178
180
|
})
|
|
179
181
|
|
|
180
|
-
|
|
182
|
+
fabric.context.events.on('process:end', () => {
|
|
181
183
|
pluginManager.logger.emit('progress_stop', { id: 'files' })
|
|
182
184
|
})
|
|
185
|
+
const files = [...fabric.files]
|
|
183
186
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const files = await pluginManager.fileManager.write({
|
|
187
|
-
extension: config.output.extension,
|
|
188
|
-
dryRun: !config.output.write,
|
|
189
|
-
parsers,
|
|
190
|
-
})
|
|
187
|
+
await fabric.write({ extension: config.output.extension })
|
|
191
188
|
|
|
192
189
|
await pluginManager.hookParallel({ hookName: 'buildEnd', message: `Build stopped for ${config.name}` })
|
|
193
190
|
|
|
194
|
-
await pluginManager.fileManager.clear()
|
|
195
|
-
|
|
196
191
|
return {
|
|
192
|
+
fabric,
|
|
197
193
|
files,
|
|
198
194
|
pluginManager,
|
|
199
195
|
}
|
|
200
196
|
} catch (e) {
|
|
201
197
|
return {
|
|
198
|
+
fabric,
|
|
202
199
|
files: [],
|
|
203
200
|
pluginManager,
|
|
204
201
|
error: e as Error,
|
package/src/fs/index.ts
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
export { clean } from './clean.ts'
|
|
2
2
|
export { exists } from './exists.ts'
|
|
3
3
|
export { read, readSync } from './read.ts'
|
|
4
|
-
export { unlink } from './unlink.ts'
|
|
5
4
|
export { getRelativePath } from './utils.ts'
|
|
6
5
|
export { write } from './write.ts'
|
|
7
|
-
|
|
8
|
-
export function trimExtName(text: string): string {
|
|
9
|
-
return text.replace(/\.[^/.]+$/, '')
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export * as KubbFile from './types.ts'
|
package/src/hooks/useMode.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import type { KubbFile } from '@kubb/fabric-core/types'
|
|
2
|
+
import { useApp } from '@kubb/react-fabric'
|
|
3
3
|
|
|
4
4
|
export function useMode(): KubbFile.Mode {
|
|
5
5
|
const { meta } = useApp<{ mode: KubbFile.Mode }>()
|
package/src/hooks/usePlugin.ts
CHANGED
package/src/plugin.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from 'node:path'
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { Fabric } from '@kubb/react-fabric'
|
|
4
4
|
import type { PluginManager } from './PluginManager.ts'
|
|
5
5
|
import type { Plugin, PluginContext, PluginFactoryOptions, UserPluginWithLifeCycle } from './types.ts'
|
|
6
6
|
|
|
@@ -15,8 +15,8 @@ export function createPlugin<T extends PluginFactoryOptions = PluginFactoryOptio
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
type Options = {
|
|
18
|
+
fabric: Fabric
|
|
18
19
|
config: PluginContext['config']
|
|
19
|
-
fileManager: FileManager
|
|
20
20
|
pluginManager: PluginManager
|
|
21
21
|
resolvePath: PluginContext['resolvePath']
|
|
22
22
|
resolveName: PluginContext['resolveName']
|
|
@@ -29,7 +29,7 @@ type Options = {
|
|
|
29
29
|
export type PluginCore = PluginFactoryOptions<'core', Options, Options, PluginContext, never>
|
|
30
30
|
|
|
31
31
|
export const pluginCore = createPlugin<PluginCore>((options) => {
|
|
32
|
-
const {
|
|
32
|
+
const { fabric, pluginManager, resolvePath, resolveName, logger } = options
|
|
33
33
|
|
|
34
34
|
return {
|
|
35
35
|
name: 'core',
|
|
@@ -37,6 +37,9 @@ export const pluginCore = createPlugin<PluginCore>((options) => {
|
|
|
37
37
|
key: ['core'],
|
|
38
38
|
context() {
|
|
39
39
|
return {
|
|
40
|
+
get fabric() {
|
|
41
|
+
return fabric
|
|
42
|
+
},
|
|
40
43
|
get config() {
|
|
41
44
|
return options.config
|
|
42
45
|
},
|
|
@@ -48,10 +51,12 @@ export const pluginCore = createPlugin<PluginCore>((options) => {
|
|
|
48
51
|
return options.plugin as NonNullable<Options['plugin']>
|
|
49
52
|
},
|
|
50
53
|
logger,
|
|
51
|
-
fileManager
|
|
54
|
+
get fileManager() {
|
|
55
|
+
return fabric.context.fileManager
|
|
56
|
+
},
|
|
52
57
|
pluginManager,
|
|
53
58
|
async addFile(...files) {
|
|
54
|
-
const resolvedFiles = await fileManager.add(...files)
|
|
59
|
+
const resolvedFiles = await fabric.context.fileManager.add(...files)
|
|
55
60
|
|
|
56
61
|
if (!Array.isArray(resolvedFiles)) {
|
|
57
62
|
return [resolvedFiles]
|
package/src/types.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { KubbFile } from '@kubb/fabric-core/types'
|
|
2
|
+
import type { Fabric, FileManager } from '@kubb/react-fabric'
|
|
3
3
|
import type { Logger } from './logger.ts'
|
|
4
4
|
import type { PluginManager } from './PluginManager.ts'
|
|
5
5
|
import type { PossiblePromise } from './utils/types.ts'
|
|
@@ -299,6 +299,7 @@ export type ResolveNameParams = {
|
|
|
299
299
|
}
|
|
300
300
|
|
|
301
301
|
export type PluginContext<TOptions extends PluginFactoryOptions = PluginFactoryOptions> = {
|
|
302
|
+
fabric: Fabric
|
|
302
303
|
config: Config
|
|
303
304
|
/**
|
|
304
305
|
* @deprecated
|