@kubb/cli 5.0.0-alpha.34 → 5.0.0-alpha.35

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.
Files changed (60) hide show
  1. package/dist/{agent-DG5HV-tW.cjs → agent-BLXyRIQn.cjs} +3 -3
  2. package/dist/{agent-DG5HV-tW.cjs.map → agent-BLXyRIQn.cjs.map} +1 -1
  3. package/dist/{agent-C5na5bbz.cjs → agent-CRQdwSar.cjs} +6 -6
  4. package/dist/{agent-C5na5bbz.cjs.map → agent-CRQdwSar.cjs.map} +1 -1
  5. package/dist/{agent-DmErNHkG.js → agent-DeM_wyAN.js} +2 -2
  6. package/dist/{agent-DmErNHkG.js.map → agent-DeM_wyAN.js.map} +1 -1
  7. package/dist/{generate-CUJnCnIQ.js → generate-CNQWSc3E.js} +2 -2
  8. package/dist/{generate-CUJnCnIQ.js.map → generate-CNQWSc3E.js.map} +1 -1
  9. package/dist/{generate-B4tku_7i.cjs → generate-CWPwtauL.cjs} +173 -154
  10. package/dist/generate-CWPwtauL.cjs.map +1 -0
  11. package/dist/{generate-XrHYSmsI.js → generate-DctgMAfY.js} +169 -150
  12. package/dist/generate-DctgMAfY.js.map +1 -0
  13. package/dist/{generate-DUL1xmJg.cjs → generate-gdilbmRQ.cjs} +2 -2
  14. package/dist/{generate-DUL1xmJg.cjs.map → generate-gdilbmRQ.cjs.map} +1 -1
  15. package/dist/index.cjs +7 -7
  16. package/dist/index.js +6 -6
  17. package/dist/{init-CrlY2xYZ.js → init-BI-1RkgG.js} +3 -3
  18. package/dist/{init-CrlY2xYZ.js.map → init-BI-1RkgG.js.map} +1 -1
  19. package/dist/{init-BlriFVH6.cjs → init-cAbMOLut.cjs} +6 -6
  20. package/dist/init-cAbMOLut.cjs.map +1 -0
  21. package/dist/{init-V5FRBsV7.cjs → init-hVxzq-Kh.cjs} +3 -3
  22. package/dist/{init-V5FRBsV7.cjs.map → init-hVxzq-Kh.cjs.map} +1 -1
  23. package/dist/{init-Y1TNCdzh.js → init-hcm7zvPn.js} +2 -2
  24. package/dist/init-hcm7zvPn.js.map +1 -0
  25. package/dist/{mcp-jMZ56bqT.cjs → mcp-9yURBP26.cjs} +3 -3
  26. package/dist/{mcp-jMZ56bqT.cjs.map → mcp-9yURBP26.cjs.map} +1 -1
  27. package/dist/{mcp-CAeC6a-k.js → mcp-Bdtcfk55.js} +2 -2
  28. package/dist/{mcp-CAeC6a-k.js.map → mcp-Bdtcfk55.js.map} +1 -1
  29. package/dist/{mcp-J47QdVFi.cjs → mcp-DMOLm4FN.cjs} +3 -3
  30. package/dist/{mcp-J47QdVFi.cjs.map → mcp-DMOLm4FN.cjs.map} +1 -1
  31. package/dist/{package-Dh1zBdCJ.cjs → package-B9cAxfxL.cjs} +2 -2
  32. package/dist/package-B9cAxfxL.cjs.map +1 -0
  33. package/dist/package-CYS1_pd_.js +6 -0
  34. package/dist/package-CYS1_pd_.js.map +1 -0
  35. package/dist/{telemetry-YO-uwAbf.cjs → telemetry-D_Bi2E3I.cjs} +3 -3
  36. package/dist/{telemetry-YO-uwAbf.cjs.map → telemetry-D_Bi2E3I.cjs.map} +1 -1
  37. package/dist/{validate-gCh1hrgS.js → validate--mbofqde.js} +2 -2
  38. package/dist/{validate-gCh1hrgS.js.map → validate--mbofqde.js.map} +1 -1
  39. package/dist/{validate-B-LfVNlS.cjs → validate-DIKeUU8K.cjs} +3 -3
  40. package/dist/{validate-B-LfVNlS.cjs.map → validate-DIKeUU8K.cjs.map} +1 -1
  41. package/dist/{validate-CbcHhnj0.cjs → validate-b-ccrtPU.cjs} +3 -3
  42. package/dist/{validate-CbcHhnj0.cjs.map → validate-b-ccrtPU.cjs.map} +1 -1
  43. package/package.json +5 -5
  44. package/src/loggers/clackLogger.ts +24 -24
  45. package/src/loggers/fileSystemLogger.ts +10 -10
  46. package/src/loggers/githubActionsLogger.ts +22 -22
  47. package/src/loggers/plainLogger.ts +21 -21
  48. package/src/runners/generate.ts +53 -65
  49. package/src/runners/init.ts +1 -1
  50. package/src/utils/executeHooks.ts +11 -11
  51. package/src/utils/getConfig.ts +10 -0
  52. package/src/utils/getCosmiConfig.ts +2 -2
  53. package/src/utils/runHook.ts +9 -9
  54. package/dist/generate-B4tku_7i.cjs.map +0 -1
  55. package/dist/generate-XrHYSmsI.js.map +0 -1
  56. package/dist/init-BlriFVH6.cjs.map +0 -1
  57. package/dist/init-Y1TNCdzh.js.map +0 -1
  58. package/dist/package-CTCPKXJv.js +0 -6
  59. package/dist/package-CTCPKXJv.js.map +0 -1
  60. package/dist/package-Dh1zBdCJ.cjs.map +0 -1
@@ -55,7 +55,7 @@ export const githubActionsLogger = defineLogger({
55
55
  console.log('::endgroup::')
56
56
  }
57
57
 
58
- context.on('info', (message, info = '') => {
58
+ context.on('kubb:info', (message, info = '') => {
59
59
  if (logLevel <= logLevelMap.silent) {
60
60
  return
61
61
  }
@@ -65,7 +65,7 @@ export const githubActionsLogger = defineLogger({
65
65
  console.log(text)
66
66
  })
67
67
 
68
- context.on('success', (message, info = '') => {
68
+ context.on('kubb:success', (message, info = '') => {
69
69
  if (logLevel <= logLevelMap.silent) {
70
70
  return
71
71
  }
@@ -75,7 +75,7 @@ export const githubActionsLogger = defineLogger({
75
75
  console.log(text)
76
76
  })
77
77
 
78
- context.on('warn', (message, info = '') => {
78
+ context.on('kubb:warn', (message, info = '') => {
79
79
  if (logLevel <= logLevelMap.silent) {
80
80
  return
81
81
  }
@@ -85,7 +85,7 @@ export const githubActionsLogger = defineLogger({
85
85
  console.warn(`::warning::${text}`)
86
86
  })
87
87
 
88
- context.on('error', (error) => {
88
+ context.on('kubb:error', (error) => {
89
89
  const caused = toCause(error)
90
90
 
91
91
  if (logLevel <= logLevelMap.silent) {
@@ -112,12 +112,12 @@ export const githubActionsLogger = defineLogger({
112
112
  }
113
113
  })
114
114
 
115
- context.on('lifecycle:start', (version) => {
115
+ context.on('kubb:lifecycle:start', (version) => {
116
116
  console.log(styleText('yellow', `Kubb ${version} 🧩`))
117
117
  reset()
118
118
  })
119
119
 
120
- context.on('config:start', () => {
120
+ context.on('kubb:config:start', () => {
121
121
  if (logLevel <= logLevelMap.silent) {
122
122
  return
123
123
  }
@@ -129,7 +129,7 @@ export const githubActionsLogger = defineLogger({
129
129
  console.log(text)
130
130
  })
131
131
 
132
- context.on('config:end', (configs) => {
132
+ context.on('kubb:config:end', (configs) => {
133
133
  state.currentConfigs = configs
134
134
 
135
135
  if (logLevel <= logLevelMap.silent) {
@@ -143,7 +143,7 @@ export const githubActionsLogger = defineLogger({
143
143
  closeGroup('Configuration')
144
144
  })
145
145
 
146
- context.on('generation:start', (config) => {
146
+ context.on('kubb:generation:start', (config) => {
147
147
  reset()
148
148
 
149
149
  // Initialize progress tracking for this generation
@@ -160,7 +160,7 @@ export const githubActionsLogger = defineLogger({
160
160
  }
161
161
  })
162
162
 
163
- context.on('plugin:start', (plugin) => {
163
+ context.on('kubb:plugin:start', (plugin) => {
164
164
  if (logLevel <= logLevelMap.silent) {
165
165
  return
166
166
  }
@@ -173,7 +173,7 @@ export const githubActionsLogger = defineLogger({
173
173
  console.log(text)
174
174
  })
175
175
 
176
- context.on('plugin:end', (plugin, { duration, success }) => {
176
+ context.on('kubb:plugin:end', (plugin, { duration, success }) => {
177
177
  if (logLevel <= logLevelMap.silent) {
178
178
  return
179
179
  }
@@ -204,7 +204,7 @@ export const githubActionsLogger = defineLogger({
204
204
  showProgressStep()
205
205
  })
206
206
 
207
- context.on('files:processing:start', (files) => {
207
+ context.on('kubb:files:processing:start', (files) => {
208
208
  if (logLevel <= logLevelMap.silent) {
209
209
  return
210
210
  }
@@ -220,7 +220,7 @@ export const githubActionsLogger = defineLogger({
220
220
  console.log(text)
221
221
  })
222
222
 
223
- context.on('files:processing:end', () => {
223
+ context.on('kubb:files:processing:end', () => {
224
224
  if (logLevel <= logLevelMap.silent) {
225
225
  return
226
226
  }
@@ -236,7 +236,7 @@ export const githubActionsLogger = defineLogger({
236
236
  showProgressStep()
237
237
  })
238
238
 
239
- context.on('file:processing:update', () => {
239
+ context.on('kubb:file:processing:update', () => {
240
240
  if (logLevel <= logLevelMap.silent) {
241
241
  return
242
242
  }
@@ -244,7 +244,7 @@ export const githubActionsLogger = defineLogger({
244
244
  state.processedFiles++
245
245
  })
246
246
 
247
- context.on('generation:end', (config) => {
247
+ context.on('kubb:generation:end', (config) => {
248
248
  const text = getMessage(
249
249
  config.name ? `${styleText('blue', '✓')} Generation completed for ${styleText('dim', config.name)}` : `${styleText('blue', '✓')} Generation completed`,
250
250
  )
@@ -252,7 +252,7 @@ export const githubActionsLogger = defineLogger({
252
252
  console.log(text)
253
253
  })
254
254
 
255
- context.on('format:start', () => {
255
+ context.on('kubb:format:start', () => {
256
256
  if (logLevel <= logLevelMap.silent) {
257
257
  return
258
258
  }
@@ -266,7 +266,7 @@ export const githubActionsLogger = defineLogger({
266
266
  console.log(text)
267
267
  })
268
268
 
269
- context.on('format:end', () => {
269
+ context.on('kubb:format:end', () => {
270
270
  if (logLevel <= logLevelMap.silent) {
271
271
  return
272
272
  }
@@ -280,7 +280,7 @@ export const githubActionsLogger = defineLogger({
280
280
  }
281
281
  })
282
282
 
283
- context.on('lint:start', () => {
283
+ context.on('kubb:lint:start', () => {
284
284
  if (logLevel <= logLevelMap.silent) {
285
285
  return
286
286
  }
@@ -294,7 +294,7 @@ export const githubActionsLogger = defineLogger({
294
294
  console.log(text)
295
295
  })
296
296
 
297
- context.on('lint:end', () => {
297
+ context.on('kubb:lint:end', () => {
298
298
  if (logLevel <= logLevelMap.silent) {
299
299
  return
300
300
  }
@@ -308,7 +308,7 @@ export const githubActionsLogger = defineLogger({
308
308
  }
309
309
  })
310
310
 
311
- context.on('hook:start', async ({ id, command, args }) => {
311
+ context.on('kubb:hook:start', async ({ id, command, args }) => {
312
312
  const commandWithArgs = formatCommandWithArgs(command, args)
313
313
  const text = getMessage(`Hook ${styleText('dim', commandWithArgs)} started`)
314
314
 
@@ -338,7 +338,7 @@ export const githubActionsLogger = defineLogger({
338
338
  })
339
339
  })
340
340
 
341
- context.on('hook:end', ({ command, args }) => {
341
+ context.on('kubb:hook:end', ({ command, args }) => {
342
342
  if (logLevel <= logLevelMap.silent) {
343
343
  return
344
344
  }
@@ -353,7 +353,7 @@ export const githubActionsLogger = defineLogger({
353
353
  }
354
354
  })
355
355
 
356
- context.on('generation:summary', (config, { status, hrStart, failedPlugins }) => {
356
+ context.on('kubb:generation:summary', (config, { status, hrStart, failedPlugins }) => {
357
357
  const pluginsCount = config.plugins?.length ?? 0
358
358
  const successCount = pluginsCount - failedPlugins.size
359
359
  const duration = formatHrtime(hrStart)
@@ -373,7 +373,7 @@ export const githubActionsLogger = defineLogger({
373
373
  }
374
374
  })
375
375
 
376
- context.on('lifecycle:end', () => {
376
+ context.on('kubb:lifecycle:end', () => {
377
377
  reset()
378
378
  })
379
379
  },
@@ -19,7 +19,7 @@ export const plainLogger = defineLogger({
19
19
  return formatMessage(message, logLevel)
20
20
  }
21
21
 
22
- context.on('info', (message, info) => {
22
+ context.on('kubb:info', (message, info) => {
23
23
  if (logLevel <= logLevelMap.silent) {
24
24
  return
25
25
  }
@@ -29,7 +29,7 @@ export const plainLogger = defineLogger({
29
29
  console.log(text)
30
30
  })
31
31
 
32
- context.on('success', (message, info = '') => {
32
+ context.on('kubb:success', (message, info = '') => {
33
33
  if (logLevel <= logLevelMap.silent) {
34
34
  return
35
35
  }
@@ -39,7 +39,7 @@ export const plainLogger = defineLogger({
39
39
  console.log(text)
40
40
  })
41
41
 
42
- context.on('warn', (message, info) => {
42
+ context.on('kubb:warn', (message, info) => {
43
43
  if (logLevel < logLevelMap.warn) {
44
44
  return
45
45
  }
@@ -49,7 +49,7 @@ export const plainLogger = defineLogger({
49
49
  console.log(text)
50
50
  })
51
51
 
52
- context.on('error', (error) => {
52
+ context.on('kubb:error', (error) => {
53
53
  const caused = toCause(error)
54
54
 
55
55
  const text = getMessage(['✗', error.message].join(' '))
@@ -74,11 +74,11 @@ export const plainLogger = defineLogger({
74
74
  }
75
75
  })
76
76
 
77
- context.on('lifecycle:start', () => {
77
+ context.on('kubb:lifecycle:start', () => {
78
78
  console.log('Kubb CLI 🧩')
79
79
  })
80
80
 
81
- context.on('config:start', () => {
81
+ context.on('kubb:config:start', () => {
82
82
  if (logLevel <= logLevelMap.silent) {
83
83
  return
84
84
  }
@@ -88,7 +88,7 @@ export const plainLogger = defineLogger({
88
88
  console.log(text)
89
89
  })
90
90
 
91
- context.on('config:end', () => {
91
+ context.on('kubb:config:end', () => {
92
92
  if (logLevel <= logLevelMap.silent) {
93
93
  return
94
94
  }
@@ -98,13 +98,13 @@ export const plainLogger = defineLogger({
98
98
  console.log(text)
99
99
  })
100
100
 
101
- context.on('generation:start', () => {
101
+ context.on('kubb:generation:start', () => {
102
102
  const text = getMessage('Generation started')
103
103
 
104
104
  console.log(text)
105
105
  })
106
106
 
107
- context.on('plugin:start', (plugin) => {
107
+ context.on('kubb:plugin:start', (plugin) => {
108
108
  if (logLevel <= logLevelMap.silent) {
109
109
  return
110
110
  }
@@ -113,7 +113,7 @@ export const plainLogger = defineLogger({
113
113
  console.log(text)
114
114
  })
115
115
 
116
- context.on('plugin:end', (plugin, { duration, success }) => {
116
+ context.on('kubb:plugin:end', (plugin, { duration, success }) => {
117
117
  if (logLevel <= logLevelMap.silent) {
118
118
  return
119
119
  }
@@ -124,7 +124,7 @@ export const plainLogger = defineLogger({
124
124
  console.log(text)
125
125
  })
126
126
 
127
- context.on('files:processing:start', (files) => {
127
+ context.on('kubb:files:processing:start', (files) => {
128
128
  if (logLevel <= logLevelMap.silent) {
129
129
  return
130
130
  }
@@ -134,7 +134,7 @@ export const plainLogger = defineLogger({
134
134
  console.log(text)
135
135
  })
136
136
 
137
- context.on('file:processing:update', ({ file, config }) => {
137
+ context.on('kubb:file:processing:update', ({ file, config }) => {
138
138
  if (logLevel <= logLevelMap.silent) {
139
139
  return
140
140
  }
@@ -144,7 +144,7 @@ export const plainLogger = defineLogger({
144
144
  console.log(text)
145
145
  })
146
146
 
147
- context.on('files:processing:end', () => {
147
+ context.on('kubb:files:processing:end', () => {
148
148
  if (logLevel <= logLevelMap.silent) {
149
149
  return
150
150
  }
@@ -154,13 +154,13 @@ export const plainLogger = defineLogger({
154
154
  console.log(text)
155
155
  })
156
156
 
157
- context.on('generation:end', (config) => {
157
+ context.on('kubb:generation:end', (config) => {
158
158
  const text = getMessage(config.name ? `Generation completed for ${config.name}` : 'Generation completed')
159
159
 
160
160
  console.log(text)
161
161
  })
162
162
 
163
- context.on('format:start', () => {
163
+ context.on('kubb:format:start', () => {
164
164
  if (logLevel <= logLevelMap.silent) {
165
165
  return
166
166
  }
@@ -170,7 +170,7 @@ export const plainLogger = defineLogger({
170
170
  console.log(text)
171
171
  })
172
172
 
173
- context.on('format:end', () => {
173
+ context.on('kubb:format:end', () => {
174
174
  if (logLevel <= logLevelMap.silent) {
175
175
  return
176
176
  }
@@ -180,7 +180,7 @@ export const plainLogger = defineLogger({
180
180
  console.log(text)
181
181
  })
182
182
 
183
- context.on('lint:start', () => {
183
+ context.on('kubb:lint:start', () => {
184
184
  if (logLevel <= logLevelMap.silent) {
185
185
  return
186
186
  }
@@ -190,7 +190,7 @@ export const plainLogger = defineLogger({
190
190
  console.log(text)
191
191
  })
192
192
 
193
- context.on('lint:end', () => {
193
+ context.on('kubb:lint:end', () => {
194
194
  if (logLevel <= logLevelMap.silent) {
195
195
  return
196
196
  }
@@ -200,7 +200,7 @@ export const plainLogger = defineLogger({
200
200
  console.log(text)
201
201
  })
202
202
 
203
- context.on('hook:start', async ({ id, command, args }) => {
203
+ context.on('kubb:hook:start', async ({ id, command, args }) => {
204
204
  const commandWithArgs = formatCommandWithArgs(command, args)
205
205
  const text = getMessage(`Hook ${commandWithArgs} started`)
206
206
 
@@ -226,7 +226,7 @@ export const plainLogger = defineLogger({
226
226
  })
227
227
  })
228
228
 
229
- context.on('hook:end', ({ command, args }) => {
229
+ context.on('kubb:hook:end', ({ command, args }) => {
230
230
  if (logLevel <= logLevelMap.silent) {
231
231
  return
232
232
  }
@@ -237,7 +237,7 @@ export const plainLogger = defineLogger({
237
237
  console.log(text)
238
238
  })
239
239
 
240
- context.on('generation:summary', (config, { pluginTimings, status, hrStart, failedPlugins, filesCreated }) => {
240
+ context.on('kubb:generation:summary', (config, { pluginTimings, status, hrStart, failedPlugins, filesCreated }) => {
241
241
  const summary = getSummary({
242
242
  failedPlugins,
243
243
  filesCreated,
@@ -8,22 +8,20 @@ import { AsyncEventEmitter as AsyncEventEmitterClass, executeIfOnline, toError }
8
8
  import {
9
9
  type CLIOptions,
10
10
  type Config,
11
+ createKubb,
11
12
  detectFormatter,
12
13
  detectLinter,
13
14
  formatters,
14
- getConfigs,
15
15
  isInputPath,
16
- type KubbEvents,
16
+ type KubbHooks,
17
17
  linters,
18
18
  logLevel as logLevelMap,
19
- safeBuild,
20
- setup,
21
- type UserConfig,
22
19
  } from '@kubb/core'
23
20
  import { version } from '../../package.json'
24
21
  import { KUBB_NPM_PACKAGE_URL } from '../constants.ts'
25
22
  import { setupLogger } from '../loggers/utils.ts'
26
23
  import { executeHooks } from '../utils/executeHooks.ts'
24
+ import { getConfigs } from '../utils/getConfig.ts'
27
25
  import { getCosmiConfig } from '../utils/getCosmiConfig.ts'
28
26
  import { buildTelemetryEvent, sendTelemetry } from '../utils/telemetry.ts'
29
27
  import { startWatcher } from '../utils/watcher.ts'
@@ -31,7 +29,7 @@ import { startWatcher } from '../utils/watcher.ts'
31
29
  type GenerateProps = {
32
30
  input?: string
33
31
  config: Config
34
- events: AsyncEventEmitter<KubbEvents>
32
+ hooks: AsyncEventEmitter<KubbHooks>
35
33
  logLevel: number
36
34
  }
37
35
 
@@ -49,7 +47,7 @@ type RunToolPassOptions = {
49
47
  configName: string | undefined
50
48
  outputPath: string
51
49
  logLevel: number
52
- events: AsyncEventEmitter<KubbEvents>
50
+ hooks: AsyncEventEmitter<KubbHooks>
53
51
  onStart: () => Promise<void>
54
52
  onEnd: () => Promise<void>
55
53
  }
@@ -64,7 +62,7 @@ async function runToolPass({
64
62
  configName,
65
63
  outputPath,
66
64
  logLevel,
67
- events,
65
+ hooks,
68
66
  onStart,
69
67
  onEnd,
70
68
  }: RunToolPassOptions) {
@@ -74,10 +72,10 @@ async function runToolPass({
74
72
  if (resolvedTool === 'auto') {
75
73
  const detected = await detect()
76
74
  if (!detected) {
77
- await events.emit('warn', noToolMessage)
75
+ await hooks.emit('kubb:warn', noToolMessage)
78
76
  } else {
79
77
  resolvedTool = detected
80
- await events.emit('info', `Auto-detected ${toolLabel}: ${styleText('dim', resolvedTool)}`)
78
+ await hooks.emit('kubb:info', `Auto-detected ${toolLabel}: ${styleText('dim', resolvedTool)}`)
81
79
  }
82
80
  }
83
81
 
@@ -90,18 +88,18 @@ async function runToolPass({
90
88
  const hookId = createHash('sha256').update([configName, resolvedTool].filter(Boolean).join('-')).digest('hex')
91
89
 
92
90
  // Wire up the hook:end listener BEFORE emitting hook:start to avoid the race condition
93
- // where hook:end fires synchronously inside emit('hook:start') before the listener is registered.
91
+ // where hook:end fires synchronously inside emit('kubb:hook:start') before the listener is registered.
94
92
  const hookEndPromise = new Promise<void>((resolve, reject) => {
95
93
  const handler = ({ id, success, error }: { id?: string; command: string; args?: readonly string[]; success: boolean; error: Error | null }) => {
96
94
  if (id !== hookId) return
97
- events.off('hook:end', handler)
95
+ hooks.off('kubb:hook:end', handler)
98
96
  if (!success) {
99
97
  reject(error ?? new Error(`${toolConfig.errorMessage}`))
100
98
  return
101
99
  }
102
- events
100
+ hooks
103
101
  .emit(
104
- 'success',
102
+ 'kubb:success',
105
103
  [
106
104
  `${successPrefix} with ${styleText('dim', resolvedTool)}`,
107
105
  logLevel >= logLevelMap.info ? `on ${styleText('dim', outputPath)}` : undefined,
@@ -113,10 +111,10 @@ async function runToolPass({
113
111
  .then(resolve)
114
112
  .catch(reject)
115
113
  }
116
- events.on('hook:end', handler)
114
+ hooks.on('kubb:hook:end', handler)
117
115
  })
118
116
 
119
- await events.emit('hook:start', {
117
+ await hooks.emit('kubb:hook:start', {
120
118
  id: hookId,
121
119
  command: toolConfig.command,
122
120
  args: toolConfig.args(outputPath),
@@ -126,7 +124,7 @@ async function runToolPass({
126
124
  } catch (caughtError) {
127
125
  const err = new Error(toolConfig.errorMessage)
128
126
  err.cause = caughtError
129
- await events.emit('error', err)
127
+ await hooks.emit('kubb:error', err)
130
128
  toolError = err
131
129
  }
132
130
  }
@@ -139,12 +137,12 @@ async function runToolPass({
139
137
  }
140
138
 
141
139
  async function generate(options: GenerateProps): Promise<void> {
142
- const { input, events, logLevel } = options
140
+ const { input, hooks, logLevel } = options
143
141
 
144
142
  const hrStart = process.hrtime()
145
143
  const inputPath = input ?? ('path' in options.config.input ? options.config.input.path : undefined)
146
144
 
147
- const userConfig: UserConfig = {
145
+ const config: Config = {
148
146
  ...options.config,
149
147
  input: inputPath
150
148
  ? {
@@ -153,30 +151,20 @@ async function generate(options: GenerateProps): Promise<void> {
153
151
  }
154
152
  : options.config.input,
155
153
  ...options.config.output,
156
- } satisfies UserConfig
154
+ } satisfies Config
157
155
 
158
- const setupResult = await setup({
159
- config: userConfig,
160
- events,
161
- })
162
-
163
- const { sources, config, driver } = setupResult
156
+ const kubb = createKubb({ config, hooks })
157
+ await kubb.setup()
164
158
 
165
- await events.emit('generation:start', config)
159
+ await hooks.emit('kubb:generation:start', config)
166
160
 
167
- await events.emit('info', config.name ? `Setup generation ${styleText('bold', config.name)}` : 'Setup generation', inputPath)
161
+ await hooks.emit('kubb:info', config.name ? `Setup generation ${styleText('bold', config.name)}` : 'Setup generation', inputPath)
168
162
 
169
- await events.emit('info', config.name ? `Build generation ${styleText('bold', config.name)}` : 'Build generation', inputPath)
163
+ await hooks.emit('kubb:info', config.name ? `Build generation ${styleText('bold', config.name)}` : 'Build generation', inputPath)
170
164
 
171
- const { files, failedPlugins, pluginTimings, error } = await safeBuild(
172
- {
173
- config,
174
- events,
175
- },
176
- setupResult,
177
- )
165
+ const { files, failedPlugins, pluginTimings, error, driver } = await kubb.safeBuild()
178
166
 
179
- await events.emit('info', 'Load summary')
167
+ await hooks.emit('kubb:info', 'Load summary')
180
168
 
181
169
  // Handle build failures (either from failed plugins or general errors)
182
170
 
@@ -191,12 +179,12 @@ async function generate(options: GenerateProps): Promise<void> {
191
179
  ].filter(Boolean)
192
180
 
193
181
  for (const err of allErrors) {
194
- await events.emit('error', err)
182
+ await hooks.emit('kubb:error', err)
195
183
  }
196
184
 
197
- await events.emit('generation:end', config, files, sources)
185
+ await hooks.emit('kubb:generation:end', config, files, kubb.sources)
198
186
 
199
- await events.emit('generation:summary', config, {
187
+ await hooks.emit('kubb:generation:summary', config, {
200
188
  failedPlugins,
201
189
  filesCreated: files.length,
202
190
  status: 'failed',
@@ -218,8 +206,8 @@ async function generate(options: GenerateProps): Promise<void> {
218
206
  process.exit(1)
219
207
  }
220
208
 
221
- await events.emit('success', 'Generation successfully', inputPath)
222
- await events.emit('generation:end', config, files, sources)
209
+ await hooks.emit('kubb:success', 'Generation successfully', inputPath)
210
+ await hooks.emit('kubb:generation:end', config, files, kubb.sources)
223
211
 
224
212
  const outputPath = path.resolve(config.root, config.output.path)
225
213
 
@@ -234,9 +222,9 @@ async function generate(options: GenerateProps): Promise<void> {
234
222
  configName: config.name,
235
223
  outputPath,
236
224
  logLevel,
237
- events,
238
- onStart: () => events.emit('format:start'),
239
- onEnd: () => events.emit('format:end'),
225
+ hooks,
226
+ onStart: () => hooks.emit('kubb:format:start'),
227
+ onEnd: () => hooks.emit('kubb:format:end'),
240
228
  })
241
229
  }
242
230
 
@@ -251,21 +239,21 @@ async function generate(options: GenerateProps): Promise<void> {
251
239
  configName: config.name,
252
240
  outputPath,
253
241
  logLevel,
254
- events,
255
- onStart: () => events.emit('lint:start'),
256
- onEnd: () => events.emit('lint:end'),
242
+ hooks,
243
+ onStart: () => hooks.emit('kubb:lint:start'),
244
+ onEnd: () => hooks.emit('kubb:lint:end'),
257
245
  })
258
246
  }
259
247
 
260
248
  if (config.hooks) {
261
- await events.emit('hooks:start')
262
- await executeHooks({ hooks: config.hooks, events })
249
+ await hooks.emit('kubb:hooks:start')
250
+ await executeHooks({ configHooks: config.hooks, hooks })
263
251
 
264
- await events.emit('hooks:end')
252
+ await hooks.emit('kubb:hooks:end')
265
253
  }
266
254
 
267
255
  // Only reached when there are no failures (process.exit(1) is called above otherwise)
268
- await events.emit('generation:summary', config, {
256
+ await hooks.emit('kubb:generation:summary', config, {
269
257
  failedPlugins,
270
258
  filesCreated: files.length,
271
259
  status: 'success',
@@ -294,9 +282,9 @@ type GenerateCommandOptions = {
294
282
 
295
283
  export async function runGenerateCommand({ input, configPath, logLevel: logLevelKey, watch }: GenerateCommandOptions): Promise<void> {
296
284
  const logLevel = logLevelMap[logLevelKey as keyof typeof logLevelMap] ?? logLevelMap.info
297
- const events = new AsyncEventEmitterClass<KubbEvents>()
285
+ const hooks = new AsyncEventEmitterClass<KubbHooks>()
298
286
 
299
- await setupLogger(events, { logLevel })
287
+ await setupLogger(hooks, { logLevel })
300
288
 
301
289
  await executeIfOnline(async () => {
302
290
  try {
@@ -305,7 +293,7 @@ export async function runGenerateCommand({ input, configPath, logLevel: logLevel
305
293
  const latestVersion = data.version
306
294
 
307
295
  if (latestVersion && version < latestVersion) {
308
- await events.emit('version:new', version, latestVersion)
296
+ await hooks.emit('kubb:version:new', version, latestVersion)
309
297
  }
310
298
  } catch {
311
299
  // Ignore network errors for version check
@@ -316,31 +304,31 @@ export async function runGenerateCommand({ input, configPath, logLevel: logLevel
316
304
  const result = await getCosmiConfig('kubb', configPath)
317
305
  const configs = await getConfigs(result.config, { input } as CLIOptions)
318
306
 
319
- await events.emit('config:start')
320
- await events.emit('info', 'Config loaded', path.relative(process.cwd(), result.filepath))
321
- await events.emit('success', 'Config loaded successfully', path.relative(process.cwd(), result.filepath))
322
- await events.emit('config:end', configs)
307
+ await hooks.emit('kubb:config:start')
308
+ await hooks.emit('kubb:info', 'Config loaded', path.relative(process.cwd(), result.filepath))
309
+ await hooks.emit('kubb:success', 'Config loaded successfully', path.relative(process.cwd(), result.filepath))
310
+ await hooks.emit('kubb:config:end', configs)
323
311
 
324
- await events.emit('lifecycle:start', version)
312
+ await hooks.emit('kubb:lifecycle:start', version)
325
313
 
326
314
  for (const config of configs) {
327
315
  if (isInputPath(config) && watch) {
328
316
  await startWatcher([input || config.input.path], async (paths) => {
329
317
  // remove to avoid duplicate listeners after each change
330
- events.removeAll()
318
+ hooks.removeAll()
331
319
 
332
- await generate({ input, config, logLevel, events })
320
+ await generate({ input, config, logLevel, hooks })
333
321
 
334
322
  clack.log.step(styleText('yellow', `Watching for changes in ${paths.join(' and ')}`))
335
323
  })
336
324
  } else {
337
- await generate({ input, config, logLevel, events })
325
+ await generate({ input, config, logLevel, hooks })
338
326
  }
339
327
  }
340
328
 
341
- await events.emit('lifecycle:end')
329
+ await hooks.emit('kubb:lifecycle:end')
342
330
  } catch (error) {
343
- await events.emit('error', toError(error))
331
+ await hooks.emit('kubb:error', toError(error))
344
332
  process.exit(1)
345
333
  }
346
334
  }
@@ -123,7 +123,7 @@ function generateConfigFile(selectedPlugins: PluginOption[], inputPath: string,
123
123
  })
124
124
  .join('\n')
125
125
 
126
- return `import { defineConfig } from '@kubb/core'
126
+ return `import { defineConfig } from 'kubb'
127
127
  ${imports}
128
128
 
129
129
  export default defineConfig({