@kubb/cli 2.18.3 → 2.18.5
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/chunk-XUCU53HT.cjs +91 -0
- package/dist/chunk-XUCU53HT.cjs.map +1 -0
- package/dist/generate-6RQDGCYD.cjs +5711 -0
- package/dist/generate-6RQDGCYD.cjs.map +1 -0
- package/dist/generate-INH7FPTG.js +476 -0
- package/dist/generate-INH7FPTG.js.map +1 -0
- package/dist/index.cjs +41 -5784
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +37 -487
- package/dist/index.js.map +1 -1
- package/package.json +11 -7
- package/src/commands/generate.ts +115 -0
- package/src/generate.ts +40 -69
- package/src/index.ts +45 -105
- package/src/utils/executeHooks.ts +64 -0
- package/src/utils/getConfig.ts +4 -3
- package/src/utils/getErrorCauses.ts +14 -0
- package/src/utils/getSummary.ts +0 -1
- package/src/utils/writeLog.ts +18 -0
- package/src/init.ts +0 -97
- package/src/utils/renderErrors.ts +0 -59
package/src/init.ts
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import path from 'node:path'
|
|
2
|
-
|
|
3
|
-
import { write } from '@kubb/core/fs'
|
|
4
|
-
import { LogLevel } from '@kubb/core/logger'
|
|
5
|
-
import { isPromiseFulfilledResult } from '@kubb/core/utils'
|
|
6
|
-
|
|
7
|
-
import { $ } from 'execa'
|
|
8
|
-
import c from 'tinyrainbow'
|
|
9
|
-
|
|
10
|
-
import { spinner } from './utils/spinner.ts'
|
|
11
|
-
|
|
12
|
-
type Preset = 'simple'
|
|
13
|
-
|
|
14
|
-
type PackageManager = 'pnpm' | 'npm' | 'yarn'
|
|
15
|
-
|
|
16
|
-
type PresetMeta = {
|
|
17
|
-
'kubb.config': string
|
|
18
|
-
packages: string[]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
type InitProps = {
|
|
22
|
-
/**
|
|
23
|
-
* @default `'silent'`
|
|
24
|
-
*/
|
|
25
|
-
logLevel?: LogLevel
|
|
26
|
-
/**
|
|
27
|
-
* @default `'simple'`
|
|
28
|
-
*/
|
|
29
|
-
preset?: Preset
|
|
30
|
-
/**
|
|
31
|
-
* @default `'pnpm'`
|
|
32
|
-
*/
|
|
33
|
-
packageManager?: PackageManager
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const presets: Record<Preset, PresetMeta> = {
|
|
37
|
-
simple: {
|
|
38
|
-
'kubb.config': `
|
|
39
|
-
import { defineConfig } from '@kubb/core'
|
|
40
|
-
import { pluginOas } from '@kubb/plugin-oas'
|
|
41
|
-
import { pluginTs } from '@kubb/swagger-ts'
|
|
42
|
-
import { pluginTanstackQuery } from '@kubb/swagger-tanstack-query'
|
|
43
|
-
|
|
44
|
-
export default defineConfig({
|
|
45
|
-
root: '.',
|
|
46
|
-
input: {
|
|
47
|
-
path: 'https://petstore3.swagger.io/api/v3/openapi.json',
|
|
48
|
-
},
|
|
49
|
-
output: {
|
|
50
|
-
path: './src/gen',
|
|
51
|
-
clean: true,
|
|
52
|
-
},
|
|
53
|
-
hooks: {
|
|
54
|
-
done: ['echo "🎉 done"'],
|
|
55
|
-
},
|
|
56
|
-
plugins: [pluginOas({}), pluginTs({ output: { path: 'models'}, enumType: 'enum' }), pluginTanstackQuery({ output: { path: './hooks' } })],
|
|
57
|
-
})
|
|
58
|
-
`,
|
|
59
|
-
packages: ['@kubb/core', '@kubb/cli', '@kubb/swagger', '@kubb/swagger-ts', '@kubb/swagger-tanstack-query'],
|
|
60
|
-
},
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export async function init({ preset = 'simple', logLevel = LogLevel.silent, packageManager = 'pnpm' }: InitProps): Promise<undefined> {
|
|
64
|
-
spinner.start('📦 Initializing Kubb')
|
|
65
|
-
|
|
66
|
-
const presetMeta = presets[preset]
|
|
67
|
-
const configPath = path.resolve(process.cwd(), './kubb.config.js')
|
|
68
|
-
const installCommand = packageManager === 'npm' ? 'install' : 'add'
|
|
69
|
-
|
|
70
|
-
spinner.start(`📀 Writing \`kubb.config.js\` ${c.dim(configPath)}`)
|
|
71
|
-
await write(presetMeta['kubb.config'], configPath)
|
|
72
|
-
spinner.succeed(`📀 Wrote \`kubb.config.js\` ${c.dim(configPath)}`)
|
|
73
|
-
|
|
74
|
-
const results = await Promise.allSettled([
|
|
75
|
-
$`npm init es6 -y`,
|
|
76
|
-
...presetMeta.packages.map(async (pack) => {
|
|
77
|
-
spinner.start(`📀 Installing ${c.dim(pack)}`)
|
|
78
|
-
const { stdout } = await $({
|
|
79
|
-
preferLocal: false,
|
|
80
|
-
})`${packageManager} ${installCommand} ${pack}`
|
|
81
|
-
spinner.succeed(`📀 Installed ${c.dim(pack)}`)
|
|
82
|
-
|
|
83
|
-
return stdout
|
|
84
|
-
}),
|
|
85
|
-
])
|
|
86
|
-
|
|
87
|
-
if (logLevel === LogLevel.info) {
|
|
88
|
-
results.forEach((result) => {
|
|
89
|
-
if (isPromiseFulfilledResult(result)) {
|
|
90
|
-
console.log(result.value)
|
|
91
|
-
}
|
|
92
|
-
})
|
|
93
|
-
}
|
|
94
|
-
spinner.succeed('📦 initialized Kubb')
|
|
95
|
-
|
|
96
|
-
return
|
|
97
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { LogLevel } from '@kubb/core/logger'
|
|
2
|
-
|
|
3
|
-
import PrettyError from 'pretty-error'
|
|
4
|
-
|
|
5
|
-
export const prettyError = new PrettyError()
|
|
6
|
-
.skipPackage('commander')
|
|
7
|
-
.skip(function callback(traceLine: any) {
|
|
8
|
-
// exclude renderErrors.ts
|
|
9
|
-
const pattern = /renderErrors/
|
|
10
|
-
|
|
11
|
-
const hasMatch = traceLine?.file?.match(pattern)
|
|
12
|
-
|
|
13
|
-
if (typeof traceLine.packageName !== 'undefined' && hasMatch) {
|
|
14
|
-
return true
|
|
15
|
-
}
|
|
16
|
-
} as PrettyError.Callback)
|
|
17
|
-
.start()
|
|
18
|
-
|
|
19
|
-
function getErrorCauses(errors: Error[]): Error[] {
|
|
20
|
-
return errors
|
|
21
|
-
.reduce((prev, error) => {
|
|
22
|
-
const causedError = error?.cause as Error
|
|
23
|
-
if (causedError) {
|
|
24
|
-
prev = [...prev, ...getErrorCauses([causedError])]
|
|
25
|
-
return prev
|
|
26
|
-
}
|
|
27
|
-
prev = [...prev, error]
|
|
28
|
-
|
|
29
|
-
return prev
|
|
30
|
-
}, [] as Error[])
|
|
31
|
-
.filter(Boolean)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export function renderErrors(error: Error | undefined, { logLevel = LogLevel.silent }: { logLevel?: LogLevel }): string {
|
|
35
|
-
if (!error) {
|
|
36
|
-
return ''
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (logLevel === LogLevel.silent) {
|
|
40
|
-
// skip when no debug is set
|
|
41
|
-
prettyError.skipNodeFiles()
|
|
42
|
-
prettyError.skip(function skip() {
|
|
43
|
-
return true
|
|
44
|
-
} as PrettyError.Callback)
|
|
45
|
-
|
|
46
|
-
return [prettyError.render(error)].filter(Boolean).join('\n')
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const errors = getErrorCauses([error])
|
|
50
|
-
|
|
51
|
-
if (logLevel === LogLevel.debug) {
|
|
52
|
-
console.log(errors)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return errors
|
|
56
|
-
.filter(Boolean)
|
|
57
|
-
.map((error) => prettyError.render(error))
|
|
58
|
-
.join('\n')
|
|
59
|
-
}
|