@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.
Files changed (52) hide show
  1. package/dist/index.cjs +62 -74
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +18 -38
  4. package/dist/index.d.ts +18 -38
  5. package/dist/index.js +62 -72
  6. package/dist/index.js.map +1 -1
  7. package/dist/utils.cjs +12 -7
  8. package/dist/utils.cjs.map +1 -1
  9. package/dist/utils.d.cts +2 -1
  10. package/dist/utils.d.ts +2 -1
  11. package/dist/utils.js +12 -7
  12. package/dist/utils.js.map +1 -1
  13. package/package.json +8 -7
  14. package/src/BarrelManager.ts +123 -0
  15. package/src/FileManager.ts +482 -0
  16. package/src/Generator.ts +34 -0
  17. package/src/PackageManager.ts +163 -0
  18. package/src/PluginManager.ts +640 -0
  19. package/src/PromiseManager.ts +48 -0
  20. package/src/SchemaGenerator.ts +8 -0
  21. package/src/build.ts +198 -0
  22. package/src/config.ts +21 -0
  23. package/src/errors.ts +12 -0
  24. package/src/index.ts +28 -0
  25. package/src/plugin.ts +80 -0
  26. package/src/types.ts +370 -0
  27. package/src/utils/EventEmitter.ts +24 -0
  28. package/src/utils/FunctionParams.ts +85 -0
  29. package/src/utils/Queue.ts +110 -0
  30. package/src/utils/TreeNode.ts +122 -0
  31. package/src/utils/URLPath.ts +128 -0
  32. package/src/utils/cache.ts +35 -0
  33. package/src/utils/clean.ts +5 -0
  34. package/src/utils/executeStrategies.ts +71 -0
  35. package/src/utils/index.ts +19 -0
  36. package/src/utils/logger.ts +76 -0
  37. package/src/utils/promise.ts +13 -0
  38. package/src/utils/randomColour.ts +39 -0
  39. package/src/utils/read.ts +68 -0
  40. package/src/utils/renderTemplate.ts +31 -0
  41. package/src/utils/throttle.ts +30 -0
  42. package/src/utils/timeout.ts +7 -0
  43. package/src/utils/transformers/combineCodes.ts +3 -0
  44. package/src/utils/transformers/createJSDocBlockText.ts +15 -0
  45. package/src/utils/transformers/escape.ts +31 -0
  46. package/src/utils/transformers/indent.ts +3 -0
  47. package/src/utils/transformers/index.ts +20 -0
  48. package/src/utils/transformers/nameSorter.ts +9 -0
  49. package/src/utils/transformers/searchAndReplace.ts +25 -0
  50. package/src/utils/transformers/transformReservedWord.ts +97 -0
  51. package/src/utils/uniqueName.ts +20 -0
  52. 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
+ }