@kubb/core 2.0.0-alpha.3 → 2.0.0-alpha.4
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.cjs +62 -74
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +18 -38
- package/dist/index.d.ts +18 -38
- package/dist/index.js +62 -72
- package/dist/index.js.map +1 -1
- package/dist/utils.cjs +12 -7
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +2 -1
- package/dist/utils.d.ts +2 -1
- package/dist/utils.js +12 -7
- package/dist/utils.js.map +1 -1
- package/package.json +8 -7
- package/src/BarrelManager.ts +123 -0
- package/src/FileManager.ts +482 -0
- package/src/Generator.ts +34 -0
- package/src/PackageManager.ts +163 -0
- package/src/PluginManager.ts +640 -0
- package/src/PromiseManager.ts +48 -0
- package/src/SchemaGenerator.ts +8 -0
- package/src/build.ts +198 -0
- package/src/config.ts +21 -0
- package/src/errors.ts +12 -0
- package/src/index.ts +28 -0
- package/src/plugin.ts +80 -0
- package/src/types.ts +370 -0
- package/src/utils/EventEmitter.ts +24 -0
- package/src/utils/FunctionParams.ts +85 -0
- package/src/utils/Queue.ts +110 -0
- package/src/utils/TreeNode.ts +122 -0
- package/src/utils/URLPath.ts +128 -0
- package/src/utils/cache.ts +35 -0
- package/src/utils/clean.ts +5 -0
- package/src/utils/executeStrategies.ts +71 -0
- package/src/utils/index.ts +19 -0
- package/src/utils/logger.ts +76 -0
- package/src/utils/promise.ts +13 -0
- package/src/utils/randomColour.ts +39 -0
- package/src/utils/read.ts +68 -0
- package/src/utils/renderTemplate.ts +31 -0
- package/src/utils/throttle.ts +30 -0
- package/src/utils/timeout.ts +7 -0
- package/src/utils/transformers/combineCodes.ts +3 -0
- package/src/utils/transformers/createJSDocBlockText.ts +15 -0
- package/src/utils/transformers/escape.ts +31 -0
- package/src/utils/transformers/indent.ts +3 -0
- package/src/utils/transformers/index.ts +20 -0
- package/src/utils/transformers/nameSorter.ts +9 -0
- package/src/utils/transformers/searchAndReplace.ts +25 -0
- package/src/utils/transformers/transformReservedWord.ts +97 -0
- package/src/utils/uniqueName.ts +20 -0
- package/src/utils/write.ts +63 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @link https://github.com/jonschlinkert/reserved/blob/master/index.js
|
|
3
|
+
*/
|
|
4
|
+
const reservedWords = [
|
|
5
|
+
'abstract',
|
|
6
|
+
'arguments',
|
|
7
|
+
'boolean',
|
|
8
|
+
'break',
|
|
9
|
+
'byte',
|
|
10
|
+
'case',
|
|
11
|
+
'catch',
|
|
12
|
+
'char',
|
|
13
|
+
'class',
|
|
14
|
+
'const',
|
|
15
|
+
'continue',
|
|
16
|
+
'debugger',
|
|
17
|
+
'default',
|
|
18
|
+
'delete',
|
|
19
|
+
'do',
|
|
20
|
+
'double',
|
|
21
|
+
'else',
|
|
22
|
+
'enum',
|
|
23
|
+
'eval',
|
|
24
|
+
'export',
|
|
25
|
+
'extends',
|
|
26
|
+
'false',
|
|
27
|
+
'final',
|
|
28
|
+
'finally',
|
|
29
|
+
'float',
|
|
30
|
+
'for',
|
|
31
|
+
'function',
|
|
32
|
+
'goto',
|
|
33
|
+
'if',
|
|
34
|
+
'implements',
|
|
35
|
+
'import',
|
|
36
|
+
'in',
|
|
37
|
+
'instanceof',
|
|
38
|
+
'int',
|
|
39
|
+
'interface',
|
|
40
|
+
'let',
|
|
41
|
+
'long',
|
|
42
|
+
'native',
|
|
43
|
+
'new',
|
|
44
|
+
'null',
|
|
45
|
+
'package',
|
|
46
|
+
'private',
|
|
47
|
+
'protected',
|
|
48
|
+
'public',
|
|
49
|
+
'return',
|
|
50
|
+
'short',
|
|
51
|
+
'static',
|
|
52
|
+
'super',
|
|
53
|
+
'switch',
|
|
54
|
+
'synchronized',
|
|
55
|
+
'this',
|
|
56
|
+
'throw',
|
|
57
|
+
'throws',
|
|
58
|
+
'transient',
|
|
59
|
+
'true',
|
|
60
|
+
'try',
|
|
61
|
+
'typeof',
|
|
62
|
+
'var',
|
|
63
|
+
'void',
|
|
64
|
+
'volatile',
|
|
65
|
+
'while',
|
|
66
|
+
'with',
|
|
67
|
+
'yield',
|
|
68
|
+
|
|
69
|
+
'Array',
|
|
70
|
+
'Date',
|
|
71
|
+
'eval',
|
|
72
|
+
'function',
|
|
73
|
+
'hasOwnProperty',
|
|
74
|
+
'Infinity',
|
|
75
|
+
'isFinite',
|
|
76
|
+
'isNaN',
|
|
77
|
+
'isPrototypeOf',
|
|
78
|
+
'length',
|
|
79
|
+
'Math',
|
|
80
|
+
'name',
|
|
81
|
+
'NaN',
|
|
82
|
+
'Number',
|
|
83
|
+
'Object',
|
|
84
|
+
'prototype',
|
|
85
|
+
'String',
|
|
86
|
+
'toString',
|
|
87
|
+
'undefined',
|
|
88
|
+
'valueOf',
|
|
89
|
+
]
|
|
90
|
+
|
|
91
|
+
export function transformReservedWord(word: string): string {
|
|
92
|
+
if ((word && reservedWords.includes(word)) || word?.match(/^\d/)) {
|
|
93
|
+
return `_${word}`
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return word
|
|
97
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function getUniqueName(originalName: string, data: Record<string, number>): string {
|
|
2
|
+
let used = data[originalName] || 0
|
|
3
|
+
if (used) {
|
|
4
|
+
data[originalName] = ++used
|
|
5
|
+
originalName += used
|
|
6
|
+
}
|
|
7
|
+
data[originalName] = 1
|
|
8
|
+
return originalName
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function setUniqueName(originalName: string, data: Record<string, number>): string {
|
|
12
|
+
let used = data[originalName] || 0
|
|
13
|
+
if (used) {
|
|
14
|
+
data[originalName] = ++used
|
|
15
|
+
|
|
16
|
+
return originalName
|
|
17
|
+
}
|
|
18
|
+
data[originalName] = 1
|
|
19
|
+
return originalName
|
|
20
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { dirname, resolve } from 'node:path'
|
|
2
|
+
|
|
3
|
+
import fs from 'fs-extra'
|
|
4
|
+
import { switcher } from 'js-runtime'
|
|
5
|
+
|
|
6
|
+
async function saveCreateDirectory(path: string): Promise<void> {
|
|
7
|
+
// resolve the full path and get just the directory, ignoring the file and extension
|
|
8
|
+
const passedPath = dirname(resolve(path))
|
|
9
|
+
// make the directory, recursively. Theoretically, if every directory in the path exists, this won't do anything.
|
|
10
|
+
await fs.mkdir(passedPath, { recursive: true })
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const writer = switcher(
|
|
14
|
+
{
|
|
15
|
+
node: async (path: string, data: string) => {
|
|
16
|
+
try {
|
|
17
|
+
await fs.stat(resolve(path))
|
|
18
|
+
const oldContent = await fs.readFile(resolve(path), { encoding: 'utf-8' })
|
|
19
|
+
if (oldContent?.toString() === data?.toString()) {
|
|
20
|
+
return
|
|
21
|
+
}
|
|
22
|
+
} catch (_err) {
|
|
23
|
+
/* empty */
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
await saveCreateDirectory(path)
|
|
27
|
+
await fs.writeFile(resolve(path), data, { encoding: 'utf-8' })
|
|
28
|
+
|
|
29
|
+
const savedData = await fs.readFile(resolve(path), { encoding: 'utf-8' })
|
|
30
|
+
|
|
31
|
+
if (savedData?.toString() !== data?.toString()) {
|
|
32
|
+
throw new Error(`Sanity check failed for ${path}\n\nData[${data.length}]:\n${data}\n\nSaved[${savedData.length}]:\n${savedData}\n`)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return savedData
|
|
36
|
+
},
|
|
37
|
+
bun: async (path: string, data: string) => {
|
|
38
|
+
try {
|
|
39
|
+
await saveCreateDirectory(path)
|
|
40
|
+
await Bun.write(resolve(path), data)
|
|
41
|
+
|
|
42
|
+
const file = Bun.file(resolve(path))
|
|
43
|
+
const savedData = await file.text()
|
|
44
|
+
|
|
45
|
+
if (savedData?.toString() !== data?.toString()) {
|
|
46
|
+
throw new Error(`Sanity check failed for ${path}\n\nData[${data.length}]:\n${data}\n\nSaved[${savedData.length}]:\n${savedData}\n`)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return savedData
|
|
50
|
+
} catch (e) {
|
|
51
|
+
console.log(e, resolve(path))
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
'node',
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
export async function write(data: string, path: string): Promise<string | undefined> {
|
|
59
|
+
if (data.trim() === '') {
|
|
60
|
+
return undefined
|
|
61
|
+
}
|
|
62
|
+
return writer(path, data.trim())
|
|
63
|
+
}
|