@kubb/core 4.3.1 → 4.4.0
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-Bpc_OJmh.js} +2 -3
- package/dist/{URLPath-BYceu_vY.js.map → URLPath-Bpc_OJmh.js.map} +1 -1
- package/dist/{URLPath-8WVzHBnA.cjs → URLPath-Bu6Wkco7.cjs} +6 -7
- package/dist/{URLPath-8WVzHBnA.cjs.map → URLPath-Bu6Wkco7.cjs.map} +1 -1
- package/dist/{chunk-CZg_9w7l.cjs → chunk-CUT6urMc.cjs} +0 -23
- package/dist/{fs-RSVoUw3S.cjs → fs-CM7ohZSu.cjs} +2 -2
- package/dist/{fs-RSVoUw3S.cjs.map → fs-CM7ohZSu.cjs.map} +1 -1
- package/dist/fs.cjs +2 -2
- package/dist/fs.d.ts +1 -1
- package/dist/hooks.cjs +6 -6
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.cts +1 -1
- package/dist/hooks.d.ts +4 -4
- package/dist/hooks.js +1 -1
- package/dist/hooks.js.map +1 -1
- package/dist/{index-BTe91LHd.d.ts → index-DdO15F70.d.ts} +2 -3
- package/dist/index.cjs +46 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -11
- package/dist/index.d.ts +18 -14
- package/dist/index.js +40 -48
- package/dist/index.js.map +1 -1
- package/dist/{logger-BXL0YCrv.cjs → logger-C7JFdYpj.cjs} +4 -4
- package/dist/{logger-BXL0YCrv.cjs.map → logger-C7JFdYpj.cjs.map} +1 -1
- package/dist/{logger-BA-za85-.d.ts → logger-D_jvWsUF.d.ts} +1 -1
- package/dist/{logger-CDxSrFkR.js → logger-khF_Lft4.js} +2 -2
- package/dist/{logger-CDxSrFkR.js.map → logger-khF_Lft4.js.map} +1 -1
- package/dist/logger.cjs +2 -2
- package/dist/logger.d.ts +1 -1
- package/dist/logger.js +1 -1
- package/dist/{prompt-DBVnG4Me.js → prompt-CIpZjUDy.js} +1 -1
- package/dist/{prompt-DBVnG4Me.js.map → prompt-CIpZjUDy.js.map} +1 -1
- package/dist/{prompt-DgONOpPH.cjs → prompt-CgJLZzbf.cjs} +2 -2
- package/dist/{prompt-DgONOpPH.cjs.map → prompt-CgJLZzbf.cjs.map} +1 -1
- package/dist/transformers-BN5jfIAt.js +339 -0
- package/dist/transformers-BN5jfIAt.js.map +1 -0
- package/dist/transformers-BpnIvSiH.cjs +443 -0
- package/dist/transformers-BpnIvSiH.cjs.map +1 -0
- package/dist/transformers.cjs +7 -6
- package/dist/transformers.js +1 -3
- package/dist/{types-DPeNK0FO.d.ts → types-CCUiy4jG.d.ts} +43 -45
- package/dist/{types-BzI9JlV8.d.ts → types-ClXc6HFo.d.ts} +1 -1
- package/dist/{types-DNxlynJr.d.cts → types-EV6-sImo.d.cts} +40 -42
- package/dist/utils.cjs +7 -7
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +4 -6
- package/dist/utils.js.map +1 -1
- package/dist/{write-BJfM7G1_.cjs → write-BsFt8M9e.cjs} +2 -2
- package/dist/{write-BJfM7G1_.cjs.map → write-BsFt8M9e.cjs.map} +1 -1
- package/package.json +8 -14
- package/src/PluginManager.ts +3 -7
- package/src/build.ts +37 -41
- package/src/hooks/useMode.ts +1 -1
- package/src/hooks/usePlugin.ts +1 -1
- package/src/hooks/usePluginManager.ts +1 -1
- package/src/plugin.ts +10 -5
- package/src/types.ts +2 -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/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/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/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/mocks/index.ts +0 -82
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":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_chunk = require('./chunk-
|
|
1
|
+
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
2
|
let node_path = require("node:path");
|
|
3
3
|
node_path = require_chunk.__toESM(node_path);
|
|
4
4
|
let fs_extra = require("fs-extra");
|
|
@@ -46,4 +46,4 @@ Object.defineProperty(exports, 'write', {
|
|
|
46
46
|
return write;
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
|
-
//# sourceMappingURL=write-
|
|
49
|
+
//# sourceMappingURL=write-BsFt8M9e.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-
|
|
1
|
+
{"version":3,"file":"write-BsFt8M9e.cjs","names":["fs"],"sources":["../src/fs/write.ts"],"sourcesContent":["import { resolve } from 'node:path'\n\nimport fs from 'fs-extra'\nimport { switcher } from 'js-runtime'\n\ntype Options = { sanity?: boolean }\n\nconst writer = switcher(\n {\n node: async (path: string, data: string, { sanity }: Options) => {\n try {\n const oldContent = await fs.readFile(resolve(path), {\n encoding: 'utf-8',\n })\n if (oldContent?.toString() === data?.toString()) {\n return\n }\n } catch (_err) {\n /* empty */\n }\n\n await fs.outputFile(resolve(path), data, { encoding: 'utf-8' })\n\n if (sanity) {\n const savedData = await fs.readFile(resolve(path), {\n encoding: 'utf-8',\n })\n\n if (savedData?.toString() !== data?.toString()) {\n throw new Error(`Sanity check failed for ${path}\\n\\nData[${data.length}]:\\n${data}\\n\\nSaved[${savedData.length}]:\\n${savedData}\\n`)\n }\n\n return savedData\n }\n\n return data\n },\n bun: async (path: string, data: string, { sanity }: Options) => {\n try {\n await Bun.write(resolve(path), data)\n\n if (sanity) {\n const file = Bun.file(resolve(path))\n const savedData = await file.text()\n\n if (savedData?.toString() !== data?.toString()) {\n throw new Error(`Sanity check failed for ${path}\\n\\nData[${path.length}]:\\n${path}\\n\\nSaved[${savedData.length}]:\\n${savedData}\\n`)\n }\n\n return savedData\n }\n\n return data\n } catch (e) {\n console.error(e)\n }\n },\n },\n 'node',\n)\n\nexport async function write(path: string, data: string, options: Options = {}): Promise<string | undefined> {\n if (data.trim() === '') {\n return undefined\n }\n return writer(path, data.trim(), options)\n}\n"],"mappings":";;;;;;;;;AAOA,MAAM,kCACJ;CACE,MAAM,OAAO,MAAc,MAAc,EAAE,aAAsB;AAC/D,MAAI;AAIF,QAHmB,MAAMA,iBAAG,gCAAiB,KAAK,EAAE,EAClD,UAAU,SACX,CAAC,GACc,UAAU,KAAK,MAAM,UAAU,CAC7C;WAEK,MAAM;AAIf,QAAMA,iBAAG,kCAAmB,KAAK,EAAE,MAAM,EAAE,UAAU,SAAS,CAAC;AAE/D,MAAI,QAAQ;GACV,MAAM,YAAY,MAAMA,iBAAG,gCAAiB,KAAK,EAAE,EACjD,UAAU,SACX,CAAC;AAEF,OAAI,WAAW,UAAU,KAAK,MAAM,UAAU,CAC5C,OAAM,IAAI,MAAM,2BAA2B,KAAK,WAAW,KAAK,OAAO,MAAM,KAAK,YAAY,UAAU,OAAO,MAAM,UAAU,IAAI;AAGrI,UAAO;;AAGT,SAAO;;CAET,KAAK,OAAO,MAAc,MAAc,EAAE,aAAsB;AAC9D,MAAI;AACF,SAAM,IAAI,6BAAc,KAAK,EAAE,KAAK;AAEpC,OAAI,QAAQ;IAEV,MAAM,YAAY,MADL,IAAI,4BAAa,KAAK,CAAC,CACP,MAAM;AAEnC,QAAI,WAAW,UAAU,KAAK,MAAM,UAAU,CAC5C,OAAM,IAAI,MAAM,2BAA2B,KAAK,WAAW,KAAK,OAAO,MAAM,KAAK,YAAY,UAAU,OAAO,MAAM,UAAU,IAAI;AAGrI,WAAO;;AAGT,UAAO;WACA,GAAG;AACV,WAAQ,MAAM,EAAE;;;CAGrB,EACD,OACD;AAED,eAAsB,MAAM,MAAc,MAAc,UAAmB,EAAE,EAA+B;AAC1G,KAAI,KAAK,MAAM,KAAK,GAClB;AAEF,QAAO,OAAO,MAAM,KAAK,MAAM,EAAE,QAAQ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.0",
|
|
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",
|
|
@@ -38,10 +38,6 @@
|
|
|
38
38
|
"import": "./dist/logger.js",
|
|
39
39
|
"require": "./dist/logger.cjs"
|
|
40
40
|
},
|
|
41
|
-
"./mocks": {
|
|
42
|
-
"import": "./dist/mocks.js",
|
|
43
|
-
"require": "./dist/mocks.cjs"
|
|
44
|
-
},
|
|
45
41
|
"./transformers": {
|
|
46
42
|
"import": "./dist/transformers.js",
|
|
47
43
|
"require": "./dist/transformers.cjs"
|
|
@@ -66,9 +62,6 @@
|
|
|
66
62
|
"logger": [
|
|
67
63
|
"./dist/logger.d.ts"
|
|
68
64
|
],
|
|
69
|
-
"mocks": [
|
|
70
|
-
"./dist/mocks.d.ts"
|
|
71
|
-
],
|
|
72
65
|
"hooks": [
|
|
73
66
|
"./dist/hooks.d.ts"
|
|
74
67
|
],
|
|
@@ -87,8 +80,7 @@
|
|
|
87
80
|
"!/**/__tests__/**"
|
|
88
81
|
],
|
|
89
82
|
"dependencies": {
|
|
90
|
-
"@kubb/fabric
|
|
91
|
-
"@kubb/parser-ts": "^4.1.4",
|
|
83
|
+
"@kubb/react-fabric": "0.2.8",
|
|
92
84
|
"camelcase": "^8.0.0",
|
|
93
85
|
"find-up": "^7.0.0",
|
|
94
86
|
"fs-extra": "^11.3.2",
|
|
@@ -99,8 +91,7 @@
|
|
|
99
91
|
"picocolors": "^1.1.1",
|
|
100
92
|
"remeda": "^2.32.0",
|
|
101
93
|
"seedrandom": "^3.0.5",
|
|
102
|
-
"semver": "^7.7.3"
|
|
103
|
-
"@kubb/react": "4.3.1"
|
|
94
|
+
"semver": "^7.7.3"
|
|
104
95
|
},
|
|
105
96
|
"devDependencies": {
|
|
106
97
|
"@types/fs-extra": "^11.0.4",
|
|
@@ -108,12 +99,15 @@
|
|
|
108
99
|
"@types/seedrandom": "^3.0.8",
|
|
109
100
|
"@types/semver": "^7.7.1",
|
|
110
101
|
"consola": "^3.4.2",
|
|
111
|
-
"tsdown": "^0.15.
|
|
102
|
+
"tsdown": "^0.15.11",
|
|
112
103
|
"typescript": "^5.9.3",
|
|
113
104
|
"zod": "^4.1.12"
|
|
114
105
|
},
|
|
106
|
+
"optionalDependencies": {
|
|
107
|
+
"@kubb/fabric-core": "0.2.8"
|
|
108
|
+
},
|
|
115
109
|
"peerDependencies": {
|
|
116
|
-
"@kubb/react": "
|
|
110
|
+
"@kubb/react-fabric": "0.2.8"
|
|
117
111
|
},
|
|
118
112
|
"engines": {
|
|
119
113
|
"node": ">=20"
|
package/src/PluginManager.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Fabric } from '@kubb/react-fabric'
|
|
2
2
|
import { ValidationPluginError } from './errors.ts'
|
|
3
3
|
import type { KubbFile } from './fs/index.ts'
|
|
4
4
|
import type { Logger } from './logger.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,5 +1,8 @@
|
|
|
1
1
|
import { join, relative, resolve } from 'node:path'
|
|
2
|
-
import {
|
|
2
|
+
import type { Fabric } from '@kubb/react-fabric'
|
|
3
|
+
import { createFabric } from '@kubb/react-fabric'
|
|
4
|
+
import { typescriptParser } from '@kubb/react-fabric/parsers'
|
|
5
|
+
import { fsPlugin } from '@kubb/react-fabric/plugins'
|
|
3
6
|
import pc from 'picocolors'
|
|
4
7
|
import { isDeepEqual } from 'remeda'
|
|
5
8
|
import { isInputPath } from './config.ts'
|
|
@@ -16,10 +19,10 @@ type BuildOptions = {
|
|
|
16
19
|
* @default Logger without the spinner
|
|
17
20
|
*/
|
|
18
21
|
logger?: Logger
|
|
19
|
-
pluginManager?: PluginManager
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
type BuildOutput = {
|
|
25
|
+
fabric: Fabric
|
|
23
26
|
files: Array<KubbFile.ResolvedFile>
|
|
24
27
|
pluginManager: PluginManager
|
|
25
28
|
/**
|
|
@@ -28,11 +31,12 @@ type BuildOutput = {
|
|
|
28
31
|
error?: Error
|
|
29
32
|
}
|
|
30
33
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
type SetupResult = {
|
|
35
|
+
fabric: Fabric
|
|
36
|
+
pluginManager: PluginManager
|
|
37
|
+
}
|
|
35
38
|
|
|
39
|
+
export async function setup(options: BuildOptions): Promise<SetupResult> {
|
|
36
40
|
const { config: userConfig, logger = createLogger() } = options
|
|
37
41
|
|
|
38
42
|
if (Array.isArray(userConfig.input)) {
|
|
@@ -74,38 +78,39 @@ export async function setup(options: BuildOptions): Promise<PluginManager> {
|
|
|
74
78
|
await clean(join(definedConfig.root, '.kubb'))
|
|
75
79
|
}
|
|
76
80
|
|
|
77
|
-
|
|
81
|
+
const fabric = createFabric()
|
|
82
|
+
fabric.use(fsPlugin, { dryRun: !definedConfig.output.write })
|
|
83
|
+
fabric.use(typescriptParser)
|
|
84
|
+
|
|
85
|
+
const pluginManager = new PluginManager(definedConfig, { fabric, logger, concurrency: 5 })
|
|
86
|
+
|
|
87
|
+
return {
|
|
88
|
+
fabric,
|
|
89
|
+
pluginManager,
|
|
90
|
+
}
|
|
78
91
|
}
|
|
79
92
|
|
|
80
|
-
export async function build(options: BuildOptions): Promise<BuildOutput> {
|
|
81
|
-
const { files, pluginManager, error } = await safeBuild(options)
|
|
93
|
+
export async function build(options: BuildOptions, overrides?: SetupResult): Promise<BuildOutput> {
|
|
94
|
+
const { fabric, files, pluginManager, error } = await safeBuild(options, overrides)
|
|
82
95
|
|
|
83
|
-
if (error)
|
|
96
|
+
if (error) {
|
|
97
|
+
throw error
|
|
98
|
+
}
|
|
84
99
|
|
|
85
100
|
return {
|
|
101
|
+
fabric,
|
|
86
102
|
files,
|
|
87
103
|
pluginManager,
|
|
88
104
|
error,
|
|
89
105
|
}
|
|
90
106
|
}
|
|
91
107
|
|
|
92
|
-
export async function safeBuild(options: BuildOptions): Promise<BuildOutput> {
|
|
93
|
-
const pluginManager = await setup(options)
|
|
108
|
+
export async function safeBuild(options: BuildOptions, overrides?: SetupResult): Promise<BuildOutput> {
|
|
109
|
+
const { fabric, pluginManager } = overrides ? overrides : await setup(options)
|
|
94
110
|
|
|
95
111
|
const config = pluginManager.config
|
|
96
112
|
|
|
97
113
|
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
114
|
await pluginManager.hookParallel({
|
|
110
115
|
hookName: 'buildStart',
|
|
111
116
|
parameters: [config],
|
|
@@ -113,14 +118,10 @@ export async function safeBuild(options: BuildOptions): Promise<BuildOutput> {
|
|
|
113
118
|
})
|
|
114
119
|
|
|
115
120
|
if (config.output.barrelType) {
|
|
116
|
-
// create root barrel file
|
|
117
121
|
const root = resolve(config.root)
|
|
118
122
|
const rootPath = resolve(root, config.output.path, 'index.ts')
|
|
119
123
|
|
|
120
|
-
|
|
121
|
-
const files = await pluginManager.fileManager.files
|
|
122
|
-
|
|
123
|
-
const barrelFiles = files.filter((file) => {
|
|
124
|
+
const barrelFiles = fabric.files.filter((file) => {
|
|
124
125
|
return file.sources.some((source) => source.isIndexable)
|
|
125
126
|
})
|
|
126
127
|
|
|
@@ -161,14 +162,14 @@ export async function safeBuild(options: BuildOptions): Promise<BuildOutput> {
|
|
|
161
162
|
meta: {},
|
|
162
163
|
}
|
|
163
164
|
|
|
164
|
-
await
|
|
165
|
+
await fabric.addFile(rootFile)
|
|
165
166
|
}
|
|
166
167
|
|
|
167
|
-
|
|
168
|
+
fabric.context.events.on('process:start', ({ files }) => {
|
|
168
169
|
pluginManager.logger.emit('progress_start', { id: 'files', size: files.length, message: 'Writing files ...' })
|
|
169
170
|
})
|
|
170
171
|
|
|
171
|
-
|
|
172
|
+
fabric.context.events.on('process:progress', async ({ file, source }) => {
|
|
172
173
|
const message = file ? `Writing ${relative(config.root, file.path)}` : ''
|
|
173
174
|
pluginManager.logger.emit('progressed', { id: 'files', message })
|
|
174
175
|
|
|
@@ -177,28 +178,23 @@ export async function safeBuild(options: BuildOptions): Promise<BuildOutput> {
|
|
|
177
178
|
}
|
|
178
179
|
})
|
|
179
180
|
|
|
180
|
-
|
|
181
|
+
fabric.context.events.on('process:end', () => {
|
|
181
182
|
pluginManager.logger.emit('progress_stop', { id: 'files' })
|
|
182
183
|
})
|
|
184
|
+
const files = [...fabric.files]
|
|
183
185
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const files = await pluginManager.fileManager.write({
|
|
187
|
-
extension: config.output.extension,
|
|
188
|
-
dryRun: !config.output.write,
|
|
189
|
-
parsers,
|
|
190
|
-
})
|
|
186
|
+
await fabric.write({ extension: config.output.extension })
|
|
191
187
|
|
|
192
188
|
await pluginManager.hookParallel({ hookName: 'buildEnd', message: `Build stopped for ${config.name}` })
|
|
193
189
|
|
|
194
|
-
await pluginManager.fileManager.clear()
|
|
195
|
-
|
|
196
190
|
return {
|
|
191
|
+
fabric,
|
|
197
192
|
files,
|
|
198
193
|
pluginManager,
|
|
199
194
|
}
|
|
200
195
|
} catch (e) {
|
|
201
196
|
return {
|
|
197
|
+
fabric,
|
|
202
198
|
files: [],
|
|
203
199
|
pluginManager,
|
|
204
200
|
error: e as Error,
|
package/src/hooks/useMode.ts
CHANGED
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,4 +1,4 @@
|
|
|
1
|
-
import type { FileManager } from '@kubb/fabric
|
|
1
|
+
import type { Fabric, FileManager } from '@kubb/react-fabric'
|
|
2
2
|
import type { KubbFile } from './fs/index.ts'
|
|
3
3
|
import type { Logger } from './logger.ts'
|
|
4
4
|
import type { PluginManager } from './PluginManager.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
|