@kubb/cli 3.0.0-alpha.9 → 3.0.0-beta.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/index.js CHANGED
@@ -1,17 +1,11 @@
1
- import {
2
- generate
3
- } from "./chunk-CZ3C3WQD.js";
4
-
5
- // src/index.ts
6
- import { defineCommand, runCommand, runMain } from "citty";
7
- import getLatestVersion from "latest-version";
8
- import { lt } from "semver";
9
- import consola from "consola";
1
+ export { generate } from './chunk-LA3QWVJI.js';
2
+ import { defineCommand, runCommand, runMain } from 'citty';
3
+ import getLatestVersion from 'latest-version';
4
+ import { lt } from 'semver';
5
+ import consola from 'consola';
10
6
 
11
7
  // package.json
12
- var version = "3.0.0-alpha.9";
13
-
14
- // src/index.ts
8
+ var version = "3.0.0-beta.1";
15
9
  var name = "kubb";
16
10
  var main = defineCommand({
17
11
  meta: {
@@ -37,20 +31,19 @@ Run \`npm install -g @kubb/cli\` to update`,
37
31
  } catch (_e) {
38
32
  }
39
33
  if (rawArgs[0] !== "generate") {
40
- const generateCommand = await import("./generate-IFZ2Y6PO.js").then((r) => r.default);
34
+ const generateCommand = await import('./generate-JA5KME2H.js').then((r) => r.default);
41
35
  await runCommand(generateCommand, { rawArgs });
42
36
  process.exit(0);
43
37
  }
44
38
  },
45
39
  subCommands: {
46
- generate: () => import("./generate-IFZ2Y6PO.js").then((r) => r.default)
40
+ generate: () => import('./generate-JA5KME2H.js').then((r) => r.default)
47
41
  }
48
42
  });
49
43
  async function run(_argv) {
50
44
  await runMain(main);
51
45
  }
52
- export {
53
- generate,
54
- run
55
- };
46
+
47
+ export { run };
48
+ //# sourceMappingURL=index.js.map
56
49
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../package.json"],"sourcesContent":["import { defineCommand, runCommand, runMain } from 'citty'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\n\nimport consola from 'consola'\nimport { version } from '../package.json'\n\nconst name = 'kubb'\n\nconst main = defineCommand({\n meta: {\n name,\n version,\n description: 'Kubb generation',\n },\n async setup({ rawArgs }) {\n try {\n const latestVersion = await getLatestVersion('@kubb/cli')\n\n if (lt(version, latestVersion)) {\n consola.box({\n title: 'Update available for `Kubb` ',\n message: `\\`v${version}\\` → \\`v${latestVersion}\\`\nRun \\`npm install -g @kubb/cli\\` to update`,\n style: {\n padding: 2,\n borderColor: 'yellow',\n borderStyle: 'rounded',\n },\n })\n }\n } catch (_e) {}\n\n if (rawArgs[0] !== 'generate') {\n // generate is not being used\n const generateCommand = await import('./commands/generate.ts').then((r) => r.default)\n\n await runCommand(generateCommand, { rawArgs })\n\n process.exit(0)\n }\n },\n subCommands: {\n generate: () => import('./commands/generate.ts').then((r) => r.default),\n },\n})\n\nexport async function run(_argv?: string[]): Promise<void> {\n await runMain(main)\n}\n\nexport { generate } from './generate.ts'\n","{\n \"name\": \"@kubb/cli\",\n \"version\": \"3.0.0-alpha.9\",\n \"description\": \"Generator cli\",\n \"keywords\": [\n \"typescript\",\n \"plugins\",\n \"kubb\",\n \"codegen\",\n \"cli\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/kubb-labs/kubb.git\",\n \"directory\": \"packages/cli\"\n },\n \"license\": \"MIT\",\n \"author\": \"Stijn Van Hulle <stijn@stijnvanhulle.be\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"bin\": {\n \"kubb\": \"bin/kubb.cjs\",\n \"bkubb\": \"bin/bkubb.cjs\"\n },\n \"files\": [\n \"src\",\n \"dist\",\n \"bin\",\n \"!/**/**.test.**\",\n \"!/**/__tests__/**\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"npx rimraf ./dist\",\n \"lint\": \"bun biome lint .\",\n \"lint:fix\": \"bun biome lint --apply-unsafe .\",\n \"release\": \"pnpm publish --no-git-check\",\n \"release:canary\": \"bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check\",\n \"start\": \"tsup --watch\",\n \"test\": \"vitest --passWithNoTests\",\n \"typecheck\": \"tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false\"\n },\n \"dependencies\": {\n \"@kubb/core\": \"workspace:*\",\n \"@kubb/fs\": \"workspace:*\",\n \"bundle-require\": \"^5.0.0\",\n \"chokidar\": \"^3.6.0\",\n \"citty\": \"^0.1.6\",\n \"cli-progress\": \"^3.12.0\",\n \"consola\": \"^3.2.3\",\n \"cosmiconfig\": \"^9.0.0\",\n \"esbuild\": \"^0.23.1\",\n \"execa\": \"^9.3.1\",\n \"js-runtime\": \"^0.0.8\",\n \"latest-version\": \"^9.0.0\",\n \"p-queue\": \"^8.0.1\",\n \"semver\": \"^7.6.3\",\n \"string-argv\": \"^0.3.2\",\n \"tinyrainbow\": \"^1.2.0\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/cli-progress\": \"^3.11.6\",\n \"@types/node\": \"^20.16.2\",\n \"@types/semver\": \"^7.5.8\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"^8.2.4\",\n \"typescript\": \"^5.5.4\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"preferGlobal\": true,\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n"],"mappings":";;;;;AAAA,SAAS,eAAe,YAAY,eAAe;AACnD,OAAO,sBAAsB;AAC7B,SAAS,UAAU;AAEnB,OAAO,aAAa;;;ACFlB,cAAW;;;ADKb,IAAM,OAAO;AAEb,IAAM,OAAO,cAAc;AAAA,EACzB,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA,MAAM,MAAM,EAAE,QAAQ,GAAG;AACvB,QAAI;AACF,YAAM,gBAAgB,MAAM,iBAAiB,WAAW;AAExD,UAAI,GAAG,SAAS,aAAa,GAAG;AAC9B,gBAAQ,IAAI;AAAA,UACV,OAAO;AAAA,UACP,SAAS,MAAM,OAAO,gBAAW,aAAa;AAAA;AAAA,UAE9C,OAAO;AAAA,YACL,SAAS;AAAA,YACT,aAAa;AAAA,YACb,aAAa;AAAA,UACf;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF,SAAS,IAAI;AAAA,IAAC;AAEd,QAAI,QAAQ,CAAC,MAAM,YAAY;AAE7B,YAAM,kBAAkB,MAAM,OAAO,wBAAwB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAEpF,YAAM,WAAW,iBAAiB,EAAE,QAAQ,CAAC;AAE7C,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,UAAU,MAAM,OAAO,wBAAwB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACxE;AACF,CAAC;AAED,eAAsB,IAAI,OAAiC;AACzD,QAAM,QAAQ,IAAI;AACpB;","names":[]}
1
+ {"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;;AAEE,IAAW,OAAA,GAAA,cAAA,CAAA;ACKb,IAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,OAAO,aAAc,CAAA;AAAA,EACzB,IAAM,EAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAa,EAAA,iBAAA;AAAA,GACf;AAAA,EACA,MAAM,KAAA,CAAM,EAAE,OAAA,EAAW,EAAA;AACvB,IAAI,IAAA;AACF,MAAM,MAAA,aAAA,GAAgB,MAAM,gBAAA,CAAiB,WAAW,CAAA,CAAA;AAExD,MAAI,IAAA,EAAA,CAAG,OAAS,EAAA,aAAa,CAAG,EAAA;AAC9B,QAAA,OAAA,CAAQ,GAAI,CAAA;AAAA,UACV,KAAO,EAAA,8BAAA;AAAA,UACP,OAAS,EAAA,CAAA,GAAA,EAAM,OAAO,CAAA,aAAA,EAAW,aAAa,CAAA;AAAA,0CAAA,CAAA;AAAA,UAE9C,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,CAAA;AAAA,YACT,WAAa,EAAA,QAAA;AAAA,YACb,WAAa,EAAA,SAAA;AAAA,WACf;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,aACO,EAAI,EAAA;AAAA,KAAC;AAEd,IAAI,IAAA,OAAA,CAAQ,CAAC,CAAA,KAAM,UAAY,EAAA;AAE7B,MAAM,MAAA,eAAA,GAAkB,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA,CAAA;AAEpF,MAAA,MAAM,UAAW,CAAA,eAAA,EAAiB,EAAE,OAAA,EAAS,CAAA,CAAA;AAE7C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,KAChB;AAAA,GACF;AAAA,EACA,WAAa,EAAA;AAAA,IACX,QAAA,EAAU,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,GACxE;AACF,CAAC,CAAA,CAAA;AAED,eAAsB,IAAI,KAAiC,EAAA;AACzD,EAAA,MAAM,QAAQ,IAAI,CAAA,CAAA;AACpB","file":"index.js","sourcesContent":["{\n \"name\": \"@kubb/cli\",\n \"version\": \"3.0.0-beta.1\",\n \"description\": \"Generator cli\",\n \"keywords\": [\n \"typescript\",\n \"plugins\",\n \"kubb\",\n \"codegen\",\n \"cli\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/kubb-labs/kubb.git\",\n \"directory\": \"packages/cli\"\n },\n \"license\": \"MIT\",\n \"author\": \"Stijn Van Hulle <stijn@stijnvanhulle.be\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"kubb\": \"bin/kubb.cjs\"\n },\n \"files\": [\n \"src\",\n \"dist\",\n \"bin\",\n \"!/**/**.test.**\",\n \"!/**/__tests__/**\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"npx rimraf ./dist\",\n \"lint\": \"bun biome lint .\",\n \"lint:fix\": \"bun biome lint --apply-unsafe .\",\n \"release\": \"pnpm publish --no-git-check\",\n \"release:canary\": \"bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check\",\n \"start\": \"tsup --watch\",\n \"test\": \"vitest --passWithNoTests\",\n \"typecheck\": \"tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false\"\n },\n \"dependencies\": {\n \"@kubb/core\": \"workspace:*\",\n \"jiti\": \"^2.1.0\",\n \"chokidar\": \"^4.0.1\",\n \"citty\": \"^0.1.6\",\n \"cli-progress\": \"^3.12.0\",\n \"consola\": \"^3.2.3\",\n \"cosmiconfig\": \"^9.0.0\",\n \"execa\": \"^9.4.0\",\n \"latest-version\": \"^9.0.0\",\n \"p-queue\": \"^8.0.1\",\n \"semver\": \"^7.6.3\",\n \"string-argv\": \"^0.3.2\",\n \"tinyrainbow\": \"^1.2.0\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/cli-progress\": \"^3.11.6\",\n \"@types/node\": \"^20.16.10\",\n \"@types/semver\": \"^7.5.8\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"^8.3.0\",\n \"typescript\": \"^5.6.2\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"preferGlobal\": true,\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n","import { defineCommand, runCommand, runMain } from 'citty'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\n\nimport { version } from '../package.json'\nimport consola from 'consola'\n\nconst name = 'kubb'\n\nconst main = defineCommand({\n meta: {\n name,\n version,\n description: 'Kubb generation',\n },\n async setup({ rawArgs }) {\n try {\n const latestVersion = await getLatestVersion('@kubb/cli')\n\n if (lt(version, latestVersion)) {\n consola.box({\n title: 'Update available for `Kubb` ',\n message: `\\`v${version}\\` → \\`v${latestVersion}\\`\nRun \\`npm install -g @kubb/cli\\` to update`,\n style: {\n padding: 2,\n borderColor: 'yellow',\n borderStyle: 'rounded',\n },\n })\n }\n } catch (_e) {}\n\n if (rawArgs[0] !== 'generate') {\n // generate is not being used\n const generateCommand = await import('./commands/generate.ts').then((r) => r.default)\n\n await runCommand(generateCommand, { rawArgs })\n\n process.exit(0)\n }\n },\n subCommands: {\n generate: () => import('./commands/generate.ts').then((r) => r.default),\n },\n})\n\nexport async function run(_argv?: string[]): Promise<void> {\n await runMain(main)\n}\n\nexport { generate } from './generate.ts'\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/cli",
3
- "version": "3.0.0-alpha.9",
3
+ "version": "3.0.0-beta.1",
4
4
  "description": "Generator cli",
5
5
  "keywords": [
6
6
  "typescript",
@@ -18,9 +18,6 @@
18
18
  "author": "Stijn Van Hulle <stijn@stijnvanhulle.be",
19
19
  "sideEffects": false,
20
20
  "type": "module",
21
- "main": "dist/index.cjs",
22
- "module": "dist/index.js",
23
- "types": "./dist/index.d.ts",
24
21
  "exports": {
25
22
  ".": {
26
23
  "import": "./dist/index.js",
@@ -28,9 +25,11 @@
28
25
  "default": "./dist/index.cjs"
29
26
  }
30
27
  },
28
+ "main": "dist/index.cjs",
29
+ "module": "dist/index.js",
30
+ "types": "./dist/index.d.ts",
31
31
  "bin": {
32
- "kubb": "bin/kubb.cjs",
33
- "bkubb": "bin/bkubb.cjs"
32
+ "kubb": "bin/kubb.cjs"
34
33
  },
35
34
  "files": [
36
35
  "src",
@@ -40,33 +39,30 @@
40
39
  "!/**/__tests__/**"
41
40
  ],
42
41
  "dependencies": {
43
- "bundle-require": "^5.0.0",
44
- "chokidar": "^3.6.0",
42
+ "jiti": "^2.1.0",
43
+ "chokidar": "^4.0.1",
45
44
  "citty": "^0.1.6",
46
45
  "cli-progress": "^3.12.0",
47
46
  "consola": "^3.2.3",
48
47
  "cosmiconfig": "^9.0.0",
49
- "esbuild": "^0.23.1",
50
- "execa": "^9.3.1",
51
- "js-runtime": "^0.0.8",
48
+ "execa": "^9.4.0",
52
49
  "latest-version": "^9.0.0",
53
50
  "p-queue": "^8.0.1",
54
51
  "semver": "^7.6.3",
55
52
  "string-argv": "^0.3.2",
56
53
  "tinyrainbow": "^1.2.0",
57
- "@kubb/core": "3.0.0-alpha.9",
58
- "@kubb/fs": "3.0.0-alpha.9"
54
+ "@kubb/core": "3.0.0-beta.1"
59
55
  },
60
56
  "devDependencies": {
61
57
  "@types/cli-progress": "^3.11.6",
62
- "@types/node": "^20.16.2",
58
+ "@types/node": "^20.16.10",
63
59
  "@types/semver": "^7.5.8",
64
60
  "source-map-support": "^0.5.21",
65
- "tsup": "^8.2.4",
66
- "typescript": "^5.5.4",
67
- "@kubb/config-ts": "3.0.0-alpha.9",
68
- "@kubb/config-tsup": "3.0.0-alpha.9",
69
- "@kubb/plugin-oas": "3.0.0-alpha.9"
61
+ "tsup": "^8.3.0",
62
+ "typescript": "^5.6.2",
63
+ "@kubb/config-ts": "3.0.0-beta.1",
64
+ "@kubb/config-tsup": "3.0.0-beta.1",
65
+ "@kubb/plugin-oas": "3.0.0-beta.1"
70
66
  },
71
67
  "engines": {
72
68
  "node": ">=20"
@@ -7,10 +7,15 @@ import { getConfig } from '../utils/getConfig.ts'
7
7
  import { getCosmiConfig } from '../utils/getCosmiConfig.ts'
8
8
  import { startWatcher } from '../utils/watcher.ts'
9
9
 
10
+ import path from 'node:path'
11
+ import * as process from 'node:process'
10
12
  import { PromiseManager, isInputPath } from '@kubb/core'
13
+ import { LogMapper, createLogger } from '@kubb/core/logger'
11
14
  import { generate } from '../generate.ts'
12
- import path from 'node:path'
13
- import { createLogger, LogMapper } from '@kubb/core/logger'
15
+
16
+ declare global {
17
+ var isDevtoolsEnabled: any
18
+ }
14
19
 
15
20
  const args = {
16
21
  config: {
@@ -31,12 +36,6 @@ const args = {
31
36
  alias: 'w',
32
37
  default: false,
33
38
  },
34
- bun: {
35
- type: 'boolean',
36
- description: 'Run Kubb with Bun',
37
- alias: 'b',
38
- default: false,
39
- },
40
39
  debug: {
41
40
  type: 'boolean',
42
41
  description: 'Override logLevel to debug',
@@ -59,7 +58,8 @@ const command = defineCommand({
59
58
  description: "[input] Generate files based on a 'kubb.config.ts' file",
60
59
  },
61
60
  args,
62
- async run({ args }) {
61
+ async run(commandContext) {
62
+ const { args } = commandContext
63
63
  const input = args._[0]
64
64
 
65
65
  if (args.help) {
@@ -71,13 +71,6 @@ const command = defineCommand({
71
71
  args.logLevel = 'debug'
72
72
  }
73
73
 
74
- if (args.bun) {
75
- const command = process.argv.splice(2).filter((item) => item !== '--bun')
76
-
77
- await execa('bkubb', command, { stdout: process.stdout, stderr: process.stderr })
78
- return
79
- }
80
-
81
74
  const logLevel = LogMapper[args.logLevel as keyof typeof LogMapper] || 3
82
75
  const logger = createLogger({
83
76
  logLevel,
@@ -97,7 +90,7 @@ const command = defineCommand({
97
90
 
98
91
  if (isInputPath(config)) {
99
92
  return startWatcher([input || config.input.path], async (paths) => {
100
- await generate({ config, args })
93
+ await generate({ config, args, input })
101
94
  logger.emit('start', c.yellow(c.bold(`Watching for changes in ${paths.join(' and ')}`)))
102
95
  })
103
96
  }
@@ -111,6 +104,19 @@ const command = defineCommand({
111
104
  }
112
105
 
113
106
  await generate({ input, config, args })
107
+
108
+ if (globalThis.isDevtoolsEnabled) {
109
+ const restart = await logger.consola?.prompt('Restart(could be used to validate the profiler)?', {
110
+ type: 'confirm',
111
+ initial: false,
112
+ })
113
+
114
+ if (restart) {
115
+ await command.run?.(commandContext)
116
+ } else {
117
+ process.exit(1)
118
+ }
119
+ }
114
120
  },
115
121
  })
116
122
 
package/src/generate.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { LogMapper, createLogger } from '@kubb/core/logger'
1
+ import { LogMapper } from '@kubb/core/logger'
2
2
 
3
3
  import c from 'tinyrainbow'
4
4
 
5
5
  import { type Config, safeBuild } from '@kubb/core'
6
- import type { Args } from './commands/generate.ts'
7
6
  import { executeHooks } from './utils/executeHooks.ts'
8
7
  import { getErrorCauses } from './utils/getErrorCauses.ts'
9
8
  import { getSummary } from './utils/getSummary.ts'
10
- import { writeLog } from './utils/writeLog.ts'
11
9
 
10
+ import { createLogger } from '@kubb/core/logger'
12
11
  import { Presets, SingleBar } from 'cli-progress'
12
+ import type { Args } from './commands/generate.ts'
13
13
 
14
14
  type GenerateProps = {
15
15
  input?: string
@@ -23,56 +23,44 @@ export async function generate({ input, config, args }: GenerateProps): Promise<
23
23
  logLevel,
24
24
  name: config.name,
25
25
  })
26
+ const { root = process.cwd(), ...userConfig } = config
27
+ const inputPath = input ?? ('path' in userConfig.input ? userConfig.input.path : undefined)
26
28
 
27
- const progressBars: Record<string, SingleBar> = {}
29
+ if (logger.logLevel !== LogMapper.debug) {
30
+ const progressCache = new Map<string, SingleBar>()
28
31
 
29
- logger.on('progress_start', ({ id, size }) => {
30
- logger.consola?.pauseLogs()
31
-
32
- if (!progressBars[id]) {
33
- progressBars[id] = new SingleBar(
34
- logLevel === LogMapper.info? {
35
- format:'{percentage}% {bar} {value}/{total} {id} | ETA: {eta_formatted} | {data}',
36
- barsize: 20,
37
- clearOnComplete: true,
38
- emptyOnZero: true,
39
- }: {
40
- format: '{percentage}% {bar} {value}/{total} {id}',
32
+ logger.on('progress_start', ({ id, size, message = '' }) => {
33
+ logger.consola?.pauseLogs()
34
+ const payload = { id, message }
35
+ const progressBar = new SingleBar(
36
+ {
37
+ format: '{percentage}% {bar} {value}/{total} | {message}',
41
38
  barsize: 30,
42
39
  clearOnComplete: true,
43
40
  emptyOnZero: true,
44
41
  },
45
42
  Presets.shades_grey,
46
43
  )
47
- progressBars[id].start(size, 1, { id, data: ' ' })
48
- }
49
- })
50
-
51
- logger.on('progress_stop', ({ id }) => {
52
- const progressBar = progressBars[id]
53
- progressBar?.stop()
54
- logger.consola?.resumeLogs()
55
- })
56
44
 
57
- logger.on('progress', ({ id, count, data = '' }) => {
58
- const progressBar = progressBars[id]
59
- const payload = { id, data }
45
+ if (!progressCache.has(id)) {
46
+ progressCache.set(id, progressBar)
47
+ progressBar.start(size, 1, payload)
48
+ }
49
+ })
60
50
 
61
- if (count) {
62
- progressBar?.update(count, payload)
63
- } else {
64
- progressBar?.increment(1, payload)
65
- }
66
- })
51
+ logger.on('progress_stop', ({ id }) => {
52
+ progressCache.get(id)?.stop()
53
+ logger.consola?.resumeLogs()
54
+ })
67
55
 
68
- logger.on('debug', async ({ logs, override, fileName }) => {
69
- await writeLog({ data: logs.join('\n'), fileName, override })
70
- })
56
+ logger.on('progressed', ({ id, message = '' }) => {
57
+ const payload = { id, message }
71
58
 
72
- const { root = process.cwd(), ...userConfig } = config
73
- const inputPath = input ?? ('path' in userConfig.input ? userConfig.input.path : undefined)
59
+ progressCache.get(id)?.increment(1, payload)
60
+ })
61
+ }
74
62
 
75
- logger.emit('start', `Building ${logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)
63
+ logger.emit('start', `Building ${logger.logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)
76
64
 
77
65
  const definedConfig: Config = {
78
66
  root,
@@ -85,7 +73,10 @@ export async function generate({ input, config, args }: GenerateProps): Promise<
85
73
  : userConfig.input,
86
74
  output: {
87
75
  write: true,
88
- exportType: 'barrelNamed',
76
+ barrelType: 'named',
77
+ extension: {
78
+ '.ts': '.ts',
79
+ },
89
80
  ...userConfig.output,
90
81
  },
91
82
  }
@@ -95,18 +86,25 @@ export async function generate({ input, config, args }: GenerateProps): Promise<
95
86
  logger,
96
87
  })
97
88
 
89
+ if (logger.logLevel === LogMapper.debug) {
90
+ logger.consola?.start('Writing logs')
91
+
92
+ const logFiles = await logger.writeLogs()
93
+
94
+ logger.consola?.success(`Written logs: \n${logFiles.join('\n')}`)
95
+ }
96
+
98
97
  const summary = getSummary({
99
98
  filesCreated: files.length,
100
99
  pluginManager,
101
100
  config: definedConfig,
102
101
  status: error ? 'failed' : 'success',
103
102
  hrStart,
104
- logger,
105
103
  })
106
104
 
107
105
  if (error && logger.consola) {
108
106
  logger.consola?.resumeLogs()
109
- logger.consola.error(`Build failed ${logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)
107
+ logger.consola.error(`Build failed ${logger.logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)
110
108
 
111
109
  logger.consola.box({
112
110
  title: `${config.name || ''}`,
@@ -119,7 +117,7 @@ export async function generate({ input, config, args }: GenerateProps): Promise<
119
117
  })
120
118
 
121
119
  const errors = getErrorCauses([error])
122
- if (logger.consola && errors.length && logLevel === LogMapper.debug) {
120
+ if (logger.consola && errors.length && logger.logLevel === LogMapper.debug) {
123
121
  errors.forEach((err) => {
124
122
  logger.consola?.error(err)
125
123
  })
@@ -134,7 +132,7 @@ export async function generate({ input, config, args }: GenerateProps): Promise<
134
132
  await executeHooks({ hooks: config.hooks, logger })
135
133
  }
136
134
 
137
- logger.consola?.log(`⚡Build completed ${logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)
135
+ logger.consola?.log(`⚡Build completed ${logger.logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)
138
136
 
139
137
  logger.consola?.box({
140
138
  title: `${config.name || ''}`,
package/src/index.ts CHANGED
@@ -2,8 +2,8 @@ import { defineCommand, runCommand, runMain } from 'citty'
2
2
  import getLatestVersion from 'latest-version'
3
3
  import { lt } from 'semver'
4
4
 
5
- import consola from 'consola'
6
5
  import { version } from '../package.json'
6
+ import consola from 'consola'
7
7
 
8
8
  const name = 'kubb'
9
9
 
@@ -7,9 +7,9 @@ import type { WritableOptions } from 'node:stream'
7
7
  import type { ConsolaInstance } from 'consola'
8
8
 
9
9
  export class ConsolaWritable extends Writable {
10
- consola: ConsolaInstance
10
+ consola: ConsolaInstance | undefined
11
11
  command: string
12
- constructor(consola: ConsolaInstance, command: string, opts?: WritableOptions) {
12
+ constructor(consola: ConsolaInstance | undefined, command: string, opts?: WritableOptions) {
13
13
  super(opts)
14
14
 
15
15
  this.command = command
@@ -27,19 +27,19 @@ export async function executeHooks({ hooks, logger }: ExecutingHooksProps): Prom
27
27
  }
28
28
 
29
29
  await queue.add(async () => {
30
- logger.emit('start', `Executing hook ${logger.logLevel !== LogMapper.silent ? c.dim(command) : ''}`)
30
+ logger?.emit('start', `Executing hook ${logger.logLevel !== LogMapper.silent ? c.dim(command) : ''}`)
31
31
 
32
- const subProcess = await execa(cmd, _args, {
32
+ await execa(cmd, _args, {
33
33
  detached: true,
34
- stdout: logger.logLevel === LogMapper.silent ? undefined : ['pipe', consolaWritable],
34
+ stdout: logger?.logLevel === LogMapper.silent ? undefined : ['pipe', consolaWritable],
35
35
  stripFinalNewline: true,
36
36
  })
37
37
 
38
- logger.emit('success', `Executed hook ${logger.logLevel !== LogMapper.silent ? c.dim(command) : ''}`)
38
+ logger?.emit('success', `Executed hook ${logger.logLevel !== LogMapper.silent ? c.dim(command) : ''}`)
39
39
  })
40
40
  })
41
41
 
42
42
  await Promise.all(promises)
43
43
 
44
- logger.emit('success', 'Executed hooks')
44
+ logger?.emit('success', 'Executed hooks')
45
45
  }
@@ -1,5 +1,5 @@
1
- import { bundleRequire } from 'bundle-require'
2
1
  import { cosmiconfig } from 'cosmiconfig'
2
+ import { createJiti } from 'jiti'
3
3
 
4
4
  import type { UserConfig, defineConfig } from '@kubb/core'
5
5
 
@@ -10,22 +10,11 @@ export type CosmiconfigResult = {
10
10
  }
11
11
 
12
12
  const tsLoader = async (configFile: string) => {
13
- const { mod } = await bundleRequire({
14
- filepath: configFile,
15
- preserveTemporaryFile: false,
16
- })
17
-
18
- return mod.default
19
- }
13
+ const jiti = createJiti(import.meta.url, { jsx: true })
20
14
 
21
- const jsLoader = async (configFile: string) => {
22
- const { mod } = await bundleRequire({
23
- filepath: configFile,
24
- preserveTemporaryFile: false,
25
- format: 'cjs',
26
- })
15
+ const mod = await jiti.import(configFile)
27
16
 
28
- return mod.default || mod
17
+ return mod
29
18
  }
30
19
 
31
20
  export async function getCosmiConfig(moduleName: string, config?: string): Promise<CosmiconfigResult> {
@@ -6,8 +6,7 @@ import c from 'tinyrainbow'
6
6
 
7
7
  import { parseHrtimeToSeconds } from './parseHrtimeToSeconds.ts'
8
8
 
9
- import type { Config, FileMetaBase, PluginManager } from '@kubb/core'
10
- import type { Logger } from '@kubb/core/logger'
9
+ import type { Config, PluginManager } from '@kubb/core'
11
10
 
12
11
  type SummaryProps = {
13
12
  pluginManager: PluginManager
@@ -15,11 +14,10 @@ type SummaryProps = {
15
14
  hrStart: [number, number]
16
15
  filesCreated: number
17
16
  config: Config
18
- logger: Logger
19
17
  }
20
18
 
21
19
  export function getSummary({ pluginManager, filesCreated, status, hrStart, config }: SummaryProps): string[] {
22
- const logs: string[] = []
20
+ const logs = new Set<string>()
23
21
  const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(hrStart))
24
22
 
25
23
  const buildStartPlugins = pluginManager.executed
@@ -42,7 +40,7 @@ export function getSummary({ pluginManager, filesCreated, status, hrStart, confi
42
40
  output: path.isAbsolute(config.root) ? path.resolve(config.root, config.output.path) : config.root,
43
41
  } as const
44
42
 
45
- logs.push(
43
+ logs.add(
46
44
  [
47
45
  [`${c.bold('Plugins:')} ${meta.plugins}`, true],
48
46
  [`${c.dim('Failed:')} ${meta.pluginsFailed || 'none'}`, !!meta.pluginsFailed],
@@ -59,5 +57,5 @@ export function getSummary({ pluginManager, filesCreated, status, hrStart, confi
59
57
  .join('\n'),
60
58
  )
61
59
 
62
- return logs
60
+ return [...logs]
63
61
  }
@@ -1,18 +1,18 @@
1
- import c from 'tinyrainbow'
2
1
  import { createLogger } from '@kubb/core/logger'
2
+ import c from 'tinyrainbow'
3
3
 
4
4
  export async function startWatcher(path: string[], cb: (path: string[]) => Promise<void>): Promise<void> {
5
5
  const { watch } = await import('chokidar')
6
-
7
- const ignored = ['**/{.git,node_modules}/**']
8
6
  const logger = createLogger()
9
7
 
8
+ const ignored = '**/{.git,node_modules}/**'
9
+
10
10
  const watcher = watch(path, {
11
11
  ignorePermissionErrors: true,
12
12
  ignored,
13
13
  })
14
14
  watcher.on('all', (type, file) => {
15
- logger.emit('info', c.yellow(c.bold(`Change detected: ${type} ${file}`)))
15
+ logger?.emit('info', c.yellow(c.bold(`Change detected: ${type} ${file}`)))
16
16
 
17
17
  try {
18
18
  cb(path)
@@ -20,6 +20,4 @@ export async function startWatcher(path: string[], cb: (path: string[]) => Promi
20
20
  logger?.emit('warning', c.red('Watcher failed'))
21
21
  }
22
22
  })
23
-
24
- return
25
23
  }
package/bin/bkubb.cjs DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- import('../dist/index.js').then(({ run }) => {
4
- process.title = 'Kubb'
5
- run(process.argv)
6
- })
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/generate.ts","../src/utils/executeHooks.ts","../src/utils/Writables.ts","../src/utils/getErrorCauses.ts","../src/utils/getSummary.ts","../src/utils/parseHrtimeToSeconds.ts","../src/utils/writeLog.ts"],"sourcesContent":["import { LogMapper, createLogger } from '@kubb/core/logger'\n\nimport c from 'tinyrainbow'\n\nimport { type Config, safeBuild } from '@kubb/core'\nimport type { Args } from './commands/generate.ts'\nimport { executeHooks } from './utils/executeHooks.ts'\nimport { getErrorCauses } from './utils/getErrorCauses.ts'\nimport { getSummary } from './utils/getSummary.ts'\nimport { writeLog } from './utils/writeLog.ts'\n\nimport { Presets, SingleBar } from 'cli-progress'\n\ntype GenerateProps = {\n input?: string\n config: Config\n args: Args\n}\n\nexport async function generate({ input, config, args }: GenerateProps): Promise<void> {\n const logLevel = LogMapper[args.logLevel as keyof typeof LogMapper] || 3\n const logger = createLogger({\n logLevel,\n name: config.name,\n })\n\n const progressBars: Record<string, SingleBar> = {}\n\n logger.on('progress_start', ({ id, size }) => {\n logger.consola?.pauseLogs()\n \n if (!progressBars[id]) {\n progressBars[id] = new SingleBar(\n logLevel === LogMapper.info? {\n format:'{percentage}% {bar} {value}/{total} {id} | ETA: {eta_formatted} | {data}',\n barsize: 20,\n clearOnComplete: true,\n emptyOnZero: true,\n }: {\n format: '{percentage}% {bar} {value}/{total} {id}',\n barsize: 30,\n clearOnComplete: true,\n emptyOnZero: true,\n },\n Presets.shades_grey,\n )\n progressBars[id].start(size, 1, { id, data: ' ' })\n }\n })\n\n logger.on('progress_stop', ({ id }) => {\n const progressBar = progressBars[id]\n progressBar?.stop()\n logger.consola?.resumeLogs()\n })\n\n logger.on('progress', ({ id, count, data = '' }) => {\n const progressBar = progressBars[id]\n const payload = { id, data }\n\n if (count) {\n progressBar?.update(count, payload)\n } else {\n progressBar?.increment(1, payload)\n }\n })\n\n logger.on('debug', async ({ logs, override, fileName }) => {\n await writeLog({ data: logs.join('\\n'), fileName, override })\n })\n\n const { root = process.cwd(), ...userConfig } = config\n const inputPath = input ?? ('path' in userConfig.input ? userConfig.input.path : undefined)\n\n logger.emit('start', `Building ${logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)\n\n const definedConfig: Config = {\n root,\n ...userConfig,\n input: inputPath\n ? {\n ...userConfig.input,\n path: inputPath,\n }\n : userConfig.input,\n output: {\n write: true,\n exportType: 'barrelNamed',\n ...userConfig.output,\n },\n }\n const hrStart = process.hrtime()\n const { pluginManager, files, error } = await safeBuild({\n config: definedConfig,\n logger,\n })\n\n const summary = getSummary({\n filesCreated: files.length,\n pluginManager,\n config: definedConfig,\n status: error ? 'failed' : 'success',\n hrStart,\n logger,\n })\n\n if (error && logger.consola) {\n logger.consola?.resumeLogs()\n logger.consola.error(`Build failed ${logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)\n\n logger.consola.box({\n title: `${config.name || ''}`,\n message: summary.join(''),\n style: {\n padding: 2,\n borderColor: 'red',\n borderStyle: 'rounded',\n },\n })\n\n const errors = getErrorCauses([error])\n if (logger.consola && errors.length && logLevel === LogMapper.debug) {\n errors.forEach((err) => {\n logger.consola?.error(err)\n })\n }\n\n logger.consola?.error(error)\n\n process.exit(0)\n }\n\n if (config.hooks) {\n await executeHooks({ hooks: config.hooks, logger })\n }\n\n logger.consola?.log(`⚡Build completed ${logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)\n\n logger.consola?.box({\n title: `${config.name || ''}`,\n message: summary.join(''),\n style: {\n padding: 2,\n borderColor: 'green',\n borderStyle: 'rounded',\n },\n })\n}\n","import type { Logger } from '@kubb/core/logger'\nimport { execa } from 'execa'\nimport { parseArgsStringToArgv } from 'string-argv'\nimport c from 'tinyrainbow'\n\nimport { ConsolaWritable } from './Writables.ts'\n\nimport type { Config } from '@kubb/core'\nimport { LogMapper } from '@kubb/core/logger'\nimport PQueue from 'p-queue'\n\ntype ExecutingHooksProps = {\n hooks: NonNullable<Config['hooks']>\n logger: Logger\n}\n\nexport async function executeHooks({ hooks, logger }: ExecutingHooksProps): Promise<void> {\n const commands = Array.isArray(hooks.done) ? hooks.done : [hooks.done].filter(Boolean)\n const queue = new PQueue({ concurrency: 1 })\n\n const promises = commands.map(async (command) => {\n const consolaWritable = new ConsolaWritable(logger.consola!, command)\n const [cmd, ..._args] = [...parseArgsStringToArgv(command)]\n\n if (!cmd) {\n return null\n }\n\n await queue.add(async () => {\n logger.emit('start', `Executing hook ${logger.logLevel !== LogMapper.silent ? c.dim(command) : ''}`)\n\n const subProcess = await execa(cmd, _args, {\n detached: true,\n stdout: logger.logLevel === LogMapper.silent ? undefined : ['pipe', consolaWritable],\n stripFinalNewline: true,\n })\n\n logger.emit('success', `Executed hook ${logger.logLevel !== LogMapper.silent ? c.dim(command) : ''}`)\n })\n })\n\n await Promise.all(promises)\n\n logger.emit('success', 'Executed hooks')\n}\n","import { Writable } from 'node:stream'\n\nimport c from 'tinyrainbow'\n\nimport * as process from 'node:process'\nimport type { WritableOptions } from 'node:stream'\nimport type { ConsolaInstance } from 'consola'\n\nexport class ConsolaWritable extends Writable {\n consola: ConsolaInstance\n command: string\n constructor(consola: ConsolaInstance, command: string, opts?: WritableOptions) {\n super(opts)\n\n this.command = command\n this.consola = consola\n }\n _write(chunk: any, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void {\n process.stdout.write(`${c.dim(chunk?.toString())}`)\n\n callback()\n }\n}\n","export function getErrorCauses(errors: Error[]): Error[] {\n return errors\n .reduce((prev, error) => {\n const causedError = error?.cause as Error\n if (causedError) {\n prev = [...prev, ...getErrorCauses([causedError])]\n return prev\n }\n prev = [...prev, error]\n\n return prev\n }, [] as Error[])\n .filter(Boolean)\n}\n","import path from 'node:path'\n\nimport { randomCliColour } from '@kubb/core/logger'\n\nimport c from 'tinyrainbow'\n\nimport { parseHrtimeToSeconds } from './parseHrtimeToSeconds.ts'\n\nimport type { Config, FileMetaBase, PluginManager } from '@kubb/core'\nimport type { Logger } from '@kubb/core/logger'\n\ntype SummaryProps = {\n pluginManager: PluginManager\n status: 'success' | 'failed'\n hrStart: [number, number]\n filesCreated: number\n config: Config\n logger: Logger\n}\n\nexport function getSummary({ pluginManager, filesCreated, status, hrStart, config }: SummaryProps): string[] {\n const logs: string[] = []\n const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(hrStart))\n\n const buildStartPlugins = pluginManager.executed\n .filter((item) => item.hookName === 'buildStart' && item.plugin.name !== 'core')\n .map((item) => item.plugin.name)\n\n const buildEndPlugins = pluginManager.executed.filter((item) => item.hookName === 'buildEnd' && item.plugin.name !== 'core').map((item) => item.plugin.name)\n\n const failedPlugins = config.plugins?.filter((plugin) => !buildEndPlugins.includes(plugin.name))?.map((plugin) => plugin.name)\n const pluginsCount = config.plugins?.length || 0\n\n const meta = {\n plugins:\n status === 'success'\n ? `${c.green(`${buildStartPlugins.length} successful`)}, ${pluginsCount} total`\n : `${c.red(`${failedPlugins?.length ?? 1} failed`)}, ${pluginsCount} total`,\n pluginsFailed: status === 'failed' ? failedPlugins?.map((name) => randomCliColour(name))?.join(', ') : undefined,\n filesCreated: filesCreated,\n time: `${c.yellow(`${elapsedSeconds}s`)}`,\n output: path.isAbsolute(config.root) ? path.resolve(config.root, config.output.path) : config.root,\n } as const\n\n logs.push(\n [\n [`${c.bold('Plugins:')} ${meta.plugins}`, true],\n [`${c.dim('Failed:')} ${meta.pluginsFailed || 'none'}`, !!meta.pluginsFailed],\n [`${c.bold('Generated:')} ${meta.filesCreated} files in ${meta.time}`, true],\n [`${c.bold('Output:')} ${meta.output}`, true],\n ]\n .map((item) => {\n if (item.at(1)) {\n return item.at(0)\n }\n return undefined\n })\n .filter(Boolean)\n .join('\\n'),\n )\n\n return logs\n}\n","export function parseHrtimeToSeconds(hrtime: [number, number]): string {\n const seconds = (hrtime[0] + hrtime[1] / 1e9).toFixed(3)\n return seconds\n}\n","import { resolve } from 'node:path'\nimport { read, write } from '@kubb/fs'\n\ntype Props = {\n data: string\n fileName?: string\n override?: boolean\n}\n\nexport async function writeLog({ data, override, fileName = 'kubb.log' }: Props): Promise<string | undefined> {\n if (data.trim() === '') {\n return undefined\n }\n const path = resolve(process.cwd(), fileName)\n let previousLogs = ''\n\n try {\n previousLogs = await read(resolve(path))\n } catch (_err) {\n /* empty */\n }\n\n if (override) {\n return write(path, data.trim(), { sanity: false })\n }\n\n return write(path, [previousLogs, data.trim()].filter(Boolean).join('\\n'), { sanity: false })\n}\n"],"mappings":"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","names":["LogMapper","c","c","process","c","c","c","path","LogMapper","c"]}