@kubb/core 3.0.0-alpha.3 → 3.0.0-alpha.31

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 (112) hide show
  1. package/README.md +13 -4
  2. package/dist/{FileManager-BW--rO8q.d.ts → FileManager-Dnafk2I5.d.ts} +146 -92
  3. package/dist/{FileManager-Bw-FNS3q.d.cts → FileManager-U5yCmg00.d.cts} +146 -92
  4. package/dist/chunk-2EU7DMPM.js +96 -0
  5. package/dist/chunk-2EU7DMPM.js.map +1 -0
  6. package/dist/{chunk-34BPAXR2.cjs → chunk-2UQARE2O.cjs} +54 -37
  7. package/dist/chunk-2UQARE2O.cjs.map +1 -0
  8. package/dist/chunk-4X5FFJPJ.js +8 -13
  9. package/dist/chunk-4X5FFJPJ.js.map +1 -1
  10. package/dist/{chunk-3OXCZ5DJ.js → chunk-E6CN2CZC.js} +63 -54
  11. package/dist/chunk-E6CN2CZC.js.map +1 -0
  12. package/dist/{chunk-25NKJ3DV.js → chunk-HBQM723K.js} +13 -27
  13. package/dist/chunk-HBQM723K.js.map +1 -0
  14. package/dist/{chunk-LM2YQC3T.cjs → chunk-LLKRRIBF.cjs} +81 -51
  15. package/dist/chunk-LLKRRIBF.cjs.map +1 -0
  16. package/dist/chunk-MD2LDZ3Z.js +889 -0
  17. package/dist/chunk-MD2LDZ3Z.js.map +1 -0
  18. package/dist/chunk-OX2X7B4Z.cjs +101 -0
  19. package/dist/chunk-OX2X7B4Z.cjs.map +1 -0
  20. package/dist/{chunk-67C6RBGQ.cjs → chunk-RIW2LFFQ.cjs} +28 -29
  21. package/dist/chunk-RIW2LFFQ.cjs.map +1 -0
  22. package/dist/chunk-SX5FHSVT.cjs +1532 -0
  23. package/dist/chunk-SX5FHSVT.cjs.map +1 -0
  24. package/dist/chunk-VBGWLAET.cjs +42 -0
  25. package/dist/chunk-VBGWLAET.cjs.map +1 -0
  26. package/dist/index.cjs +553 -619
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +7 -22
  29. package/dist/index.d.ts +7 -22
  30. package/dist/index.js +444 -525
  31. package/dist/index.js.map +1 -1
  32. package/dist/{logger-DChjnJMn.d.cts → logger-DvbHXjIO.d.cts} +29 -19
  33. package/dist/{logger-DChjnJMn.d.ts → logger-DvbHXjIO.d.ts} +29 -19
  34. package/dist/logger.cjs +25 -15
  35. package/dist/logger.cjs.map +1 -1
  36. package/dist/logger.d.cts +1 -2
  37. package/dist/logger.d.ts +1 -2
  38. package/dist/logger.js +3 -15
  39. package/dist/logger.js.map +1 -1
  40. package/dist/mocks.cjs +42 -31
  41. package/dist/mocks.cjs.map +1 -1
  42. package/dist/mocks.d.cts +7 -9
  43. package/dist/mocks.d.ts +7 -9
  44. package/dist/mocks.js +35 -33
  45. package/dist/mocks.js.map +1 -1
  46. package/dist/{prompt-6FWP747F.cjs → prompt-2PN2F25D.cjs} +89 -89
  47. package/dist/prompt-2PN2F25D.cjs.map +1 -0
  48. package/dist/{prompt-HK3MWREM.js → prompt-WQQUN22Z.js} +9 -15
  49. package/dist/prompt-WQQUN22Z.js.map +1 -0
  50. package/dist/transformers.cjs +216 -49
  51. package/dist/transformers.cjs.map +1 -1
  52. package/dist/transformers.d.cts +2 -4
  53. package/dist/transformers.d.ts +2 -4
  54. package/dist/transformers.js +149 -35
  55. package/dist/transformers.js.map +1 -1
  56. package/dist/utils.cjs +65 -26
  57. package/dist/utils.cjs.map +1 -1
  58. package/dist/utils.d.cts +29 -3
  59. package/dist/utils.d.ts +29 -3
  60. package/dist/utils.js +3 -26
  61. package/dist/utils.js.map +1 -1
  62. package/package.json +11 -14
  63. package/src/BarrelManager.ts +95 -109
  64. package/src/{Generator.ts → BaseGenerator.ts} +1 -1
  65. package/src/FileManager.ts +199 -304
  66. package/src/PackageManager.ts +1 -1
  67. package/src/PluginManager.ts +152 -93
  68. package/src/PromiseManager.ts +1 -1
  69. package/src/__snapshots__/barrel.json +73 -0
  70. package/src/__snapshots__/grouped.json +120 -0
  71. package/src/__snapshots__/ordered.json +68 -0
  72. package/src/build.ts +86 -131
  73. package/src/config.ts +2 -4
  74. package/src/errors.ts +0 -11
  75. package/src/index.ts +2 -3
  76. package/src/logger.ts +76 -34
  77. package/src/plugin.ts +2 -5
  78. package/src/transformers/escape.ts +0 -10
  79. package/src/transformers/index.ts +2 -3
  80. package/src/transformers/stringify.ts +1 -1
  81. package/src/transformers/trim.ts +0 -4
  82. package/src/types.ts +77 -22
  83. package/src/utils/TreeNode.ts +132 -50
  84. package/src/utils/executeStrategies.ts +3 -3
  85. package/src/utils/index.ts +2 -1
  86. package/src/utils/parser.ts +156 -0
  87. package/dist/chunk-25NKJ3DV.js.map +0 -1
  88. package/dist/chunk-34BPAXR2.cjs.map +0 -1
  89. package/dist/chunk-3OXCZ5DJ.js.map +0 -1
  90. package/dist/chunk-5JZNFPUP.js +0 -309
  91. package/dist/chunk-5JZNFPUP.js.map +0 -1
  92. package/dist/chunk-67C6RBGQ.cjs.map +0 -1
  93. package/dist/chunk-ADC5UNZ5.cjs +0 -1227
  94. package/dist/chunk-ADC5UNZ5.cjs.map +0 -1
  95. package/dist/chunk-HMLY7DHA.js +0 -16
  96. package/dist/chunk-HMLY7DHA.js.map +0 -1
  97. package/dist/chunk-JKZG2IJR.js +0 -283
  98. package/dist/chunk-JKZG2IJR.js.map +0 -1
  99. package/dist/chunk-LM2YQC3T.cjs.map +0 -1
  100. package/dist/chunk-PZT4CTBV.cjs +0 -299
  101. package/dist/chunk-PZT4CTBV.cjs.map +0 -1
  102. package/dist/chunk-SA2GZKXS.js +0 -596
  103. package/dist/chunk-SA2GZKXS.js.map +0 -1
  104. package/dist/chunk-XCPFG6DO.cjs +0 -66
  105. package/dist/chunk-XCPFG6DO.cjs.map +0 -1
  106. package/dist/chunk-YTSNYMHW.cjs +0 -320
  107. package/dist/chunk-YTSNYMHW.cjs.map +0 -1
  108. package/dist/prompt-6FWP747F.cjs.map +0 -1
  109. package/dist/prompt-HK3MWREM.js.map +0 -1
  110. package/schema.json +0 -86
  111. package/src/utils/cache.ts +0 -35
  112. package/src/utils/getParser.ts +0 -17
@@ -1,50 +1,217 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
- var _chunkPZT4CTBVcjs = require('./chunk-PZT4CTBV.cjs');
20
-
21
-
22
-
23
-
24
-
25
- var _chunk67C6RBGQcjs = require('./chunk-67C6RBGQ.cjs');
26
- require('./chunk-XCPFG6DO.cjs');
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
- exports.camelCase = _chunk67C6RBGQcjs.camelCase; exports.combineCodes = _chunkPZT4CTBVcjs.combineCodes; exports.createIndent = _chunkPZT4CTBVcjs.createIndent; exports.createJSDocBlockText = _chunkPZT4CTBVcjs.createJSDocBlockText; exports.default = _chunkPZT4CTBVcjs.transformers_default; exports.escape = _chunkPZT4CTBVcjs.escape; exports.jsStringEscape = _chunkPZT4CTBVcjs.jsStringEscape; exports.merge = _chunkPZT4CTBVcjs.merge; exports.nameSorter = _chunkPZT4CTBVcjs.nameSorter; exports.orderBy = _chunk67C6RBGQcjs.orderBy; exports.pascalCase = _chunk67C6RBGQcjs.pascalCase; exports.pathCase = _chunk67C6RBGQcjs.pathCase; exports.searchAndReplace = _chunkPZT4CTBVcjs.searchAndReplace; exports.stringify = _chunkPZT4CTBVcjs.stringify; exports.stringifyObject = _chunkPZT4CTBVcjs.stringifyObject; exports.toRegExp = _chunkPZT4CTBVcjs.toRegExp; exports.toRegExpString = _chunkPZT4CTBVcjs.toRegExpString; exports.transformReservedWord = _chunkPZT4CTBVcjs.transformReservedWord; exports.trim = _chunkPZT4CTBVcjs.trim; exports.trimExtName = _chunkPZT4CTBVcjs.trimExtName; exports.trimQuotes = _chunkPZT4CTBVcjs.trimQuotes;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var chunkOX2X7B4Z_cjs = require('./chunk-OX2X7B4Z.cjs');
6
+ var chunkRIW2LFFQ_cjs = require('./chunk-RIW2LFFQ.cjs');
7
+ var chunkVBGWLAET_cjs = require('./chunk-VBGWLAET.cjs');
8
+ var remeda = require('remeda');
9
+
10
+ // src/transformers/index.ts
11
+ chunkVBGWLAET_cjs.init_cjs_shims();
12
+
13
+ // src/transformers/combineCodes.ts
14
+ chunkVBGWLAET_cjs.init_cjs_shims();
15
+ function combineCodes(codes) {
16
+ return codes.join("\n");
17
+ }
18
+
19
+ // src/transformers/createJSDocBlockText.ts
20
+ chunkVBGWLAET_cjs.init_cjs_shims();
21
+ function createJSDocBlockText({ comments }) {
22
+ const filteredComments = comments.filter(Boolean);
23
+ if (!filteredComments.length) {
24
+ return "";
25
+ }
26
+ return `/**
27
+ * ${filteredComments.join("\n * ")}
28
+ */`;
29
+ }
30
+
31
+ // src/transformers/escape.ts
32
+ chunkVBGWLAET_cjs.init_cjs_shims();
33
+ function escape(text) {
34
+ return text ? text.replaceAll("`", "\\`") : "";
35
+ }
36
+ function jsStringEscape(input) {
37
+ return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
38
+ switch (character) {
39
+ case '"':
40
+ case "'":
41
+ case "\\":
42
+ return `\\${character}`;
43
+ // Four possible LineTerminator characters need to be escaped:
44
+ case "\n":
45
+ return "\\n";
46
+ case "\r":
47
+ return "\\r";
48
+ case "\u2028":
49
+ return "\\u2028";
50
+ case "\u2029":
51
+ return "\\u2029";
52
+ default:
53
+ return "";
54
+ }
55
+ });
56
+ }
57
+
58
+ // src/transformers/indent.ts
59
+ chunkVBGWLAET_cjs.init_cjs_shims();
60
+ function createIndent(size) {
61
+ return Array.from({ length: size + 1 }).join(" ");
62
+ }
63
+
64
+ // src/transformers/nameSorter.ts
65
+ chunkVBGWLAET_cjs.init_cjs_shims();
66
+ function nameSorter(a, b) {
67
+ if (a.name < b.name) {
68
+ return -1;
69
+ }
70
+ if (a.name > b.name) {
71
+ return 1;
72
+ }
73
+ return 0;
74
+ }
75
+
76
+ // src/transformers/searchAndReplace.ts
77
+ chunkVBGWLAET_cjs.init_cjs_shims();
78
+ function searchAndReplace(options) {
79
+ const { text, replaceBy, prefix = "", key } = options;
80
+ const searchValues = options.searchValues?.(prefix, key) || [
81
+ `${prefix}["${key}"]`,
82
+ `${prefix}['${key}']`,
83
+ `${prefix}[\`${key}\`]`,
84
+ `${prefix}"${key}"`,
85
+ `${prefix}'${key}'`,
86
+ `${prefix}\`${key}\``,
87
+ new RegExp(`${prefix}${key}`, "g")
88
+ ];
89
+ return searchValues.reduce((prev, searchValue) => {
90
+ return prev.toString().replaceAll(searchValue, replaceBy);
91
+ }, text);
92
+ }
93
+
94
+ // src/transformers/stringify.ts
95
+ chunkVBGWLAET_cjs.init_cjs_shims();
96
+
97
+ // src/transformers/trim.ts
98
+ chunkVBGWLAET_cjs.init_cjs_shims();
99
+ function trim(text) {
100
+ return text.replaceAll(/\n/g, "").trim();
101
+ }
102
+ function trimQuotes(text) {
103
+ if (text.match(/^"(.*)"$/)) {
104
+ return text.replace(/^"(.*)"$/, "$1");
105
+ }
106
+ if (text.match(/^'(.*)'$/)) {
107
+ return text.replace(/^'(.*)'$/, "$1");
108
+ }
109
+ if (text.match(/^`(.*)`$/)) {
110
+ return text.replace(/^`(.*)`$/, "$1");
111
+ }
112
+ return text;
113
+ }
114
+
115
+ // src/transformers/stringify.ts
116
+ function stringify(value) {
117
+ if (value === void 0 || value === null) {
118
+ return '""';
119
+ }
120
+ return JSON.stringify(trimQuotes(value.toString()));
121
+ }
122
+ function stringifyObject(value) {
123
+ const items = Object.entries(value).map(([key, value2]) => {
124
+ if (typeof value2 === "object") {
125
+ return `${key}: {
126
+ ${stringifyObject(value2)}
127
+ }`;
128
+ }
129
+ return `${key}: ${value2}`;
130
+ }).filter(Boolean);
131
+ return items.join(",\n");
132
+ }
133
+
134
+ // src/transformers/toRegExp.ts
135
+ chunkVBGWLAET_cjs.init_cjs_shims();
136
+ function stringToRegex(text) {
137
+ const isStartWithSlash = text.startsWith("/");
138
+ const isEndWithSlash = text.endsWith("/");
139
+ return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0));
140
+ }
141
+ function toRegExp(text) {
142
+ if (typeof text === "string") {
143
+ const source = trimQuotes(text);
144
+ return stringToRegex(source);
145
+ }
146
+ return stringToRegex(text.toString());
147
+ }
148
+ function toRegExpString(text, func = "RegExp") {
149
+ const isStartWithSlash = text.startsWith("/");
150
+ const isEndWithSlash = text.endsWith("/");
151
+ const regexp = `new ${func}('${jsStringEscape(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0))}')`;
152
+ return regexp;
153
+ }
154
+ var transformers_default = {
155
+ combineCodes,
156
+ escape,
157
+ jsStringEscape,
158
+ createIndent,
159
+ transformReservedWord: chunkOX2X7B4Z_cjs.transformReservedWord,
160
+ nameSorter,
161
+ searchAndReplace,
162
+ stringify,
163
+ stringifyObject,
164
+ toRegExp,
165
+ toRegExpString,
166
+ trim,
167
+ trimQuotes,
168
+ JSDoc: {
169
+ createJSDocBlockText
170
+ },
171
+ orderBy: chunkRIW2LFFQ_cjs.orderBy,
172
+ merge: remeda.merge,
173
+ camelCase: chunkRIW2LFFQ_cjs.camelCase,
174
+ pascalCase: chunkRIW2LFFQ_cjs.pascalCase,
175
+ pathCase: chunkRIW2LFFQ_cjs.pathCase
176
+ };
177
+
178
+ Object.defineProperty(exports, "transformReservedWord", {
179
+ enumerable: true,
180
+ get: function () { return chunkOX2X7B4Z_cjs.transformReservedWord; }
181
+ });
182
+ Object.defineProperty(exports, "camelCase", {
183
+ enumerable: true,
184
+ get: function () { return chunkRIW2LFFQ_cjs.camelCase; }
185
+ });
186
+ Object.defineProperty(exports, "orderBy", {
187
+ enumerable: true,
188
+ get: function () { return chunkRIW2LFFQ_cjs.orderBy; }
189
+ });
190
+ Object.defineProperty(exports, "pascalCase", {
191
+ enumerable: true,
192
+ get: function () { return chunkRIW2LFFQ_cjs.pascalCase; }
193
+ });
194
+ Object.defineProperty(exports, "pathCase", {
195
+ enumerable: true,
196
+ get: function () { return chunkRIW2LFFQ_cjs.pathCase; }
197
+ });
198
+ Object.defineProperty(exports, "merge", {
199
+ enumerable: true,
200
+ get: function () { return remeda.merge; }
201
+ });
202
+ exports.combineCodes = combineCodes;
203
+ exports.createIndent = createIndent;
204
+ exports.createJSDocBlockText = createJSDocBlockText;
205
+ exports.default = transformers_default;
206
+ exports.escape = escape;
207
+ exports.jsStringEscape = jsStringEscape;
208
+ exports.nameSorter = nameSorter;
209
+ exports.searchAndReplace = searchAndReplace;
210
+ exports.stringify = stringify;
211
+ exports.stringifyObject = stringifyObject;
212
+ exports.toRegExp = toRegExp;
213
+ exports.toRegExpString = toRegExpString;
214
+ exports.trim = trim;
215
+ exports.trimQuotes = trimQuotes;
216
+ //# sourceMappingURL=transformers.cjs.map
50
217
  //# sourceMappingURL=transformers.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/core/dist/transformers.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,+lCAAC","file":"/home/runner/work/kubb/kubb/packages/core/dist/transformers.cjs"}
1
+ {"version":3,"sources":["../src/transformers/index.ts","../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts","../src/transformers/searchAndReplace.ts","../src/transformers/stringify.ts","../src/transformers/trim.ts","../src/transformers/toRegExp.ts"],"names":["init_cjs_shims","value","transformReservedWord","orderBy","merge","camelCase","pascalCase","pathCase"],"mappings":"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","file":"transformers.cjs","sourcesContent":["import { orderBy } from 'natural-orderby'\nimport { merge } from 'remeda'\n\nimport { camelCase, pascalCase, pathCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { stringify, stringifyObject } from './stringify.ts'\nimport { toRegExp, toRegExpString } from './toRegExp.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimQuotes } from './trim.ts'\n\nexport { camelCase, pascalCase, pathCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { stringify, stringifyObject } from './stringify.ts'\nexport { toRegExp, toRegExpString } from './toRegExp.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimQuotes } from './trim.ts'\nexport { merge } from 'remeda'\nexport { orderBy } from 'natural-orderby'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n stringify,\n stringifyObject,\n toRegExp,\n toRegExpString,\n trim,\n trimQuotes,\n JSDoc: {\n createJSDocBlockText,\n },\n orderBy,\n merge,\n camelCase,\n pascalCase,\n pathCase,\n} as const\n","export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return `\\\\${character}`\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n","type Options = {\n text: string\n replaceBy: string\n prefix?: string\n key: string\n searchValues?: (prefix: string, key: string) => Array<RegExp | string>\n}\n\nexport function searchAndReplace(options: Options): string {\n const { text, replaceBy, prefix = '', key } = options\n\n const searchValues = options.searchValues?.(prefix, key) || [\n `${prefix}[\"${key}\"]`,\n `${prefix}['${key}']`,\n `${prefix}[\\`${key}\\`]`,\n `${prefix}\"${key}\"`,\n `${prefix}'${key}'`,\n `${prefix}\\`${key}\\``,\n new RegExp(`${prefix}${key}`, 'g'),\n ]\n\n return searchValues.reduce((prev, searchValue) => {\n return prev.toString().replaceAll(searchValue, replaceBy)\n }, text) as string\n}\n","import { trimQuotes } from './trim'\n\nexport function stringify(value: string | number | boolean | undefined): string {\n if (value === undefined || value === null) {\n return '\"\"'\n }\n\n return JSON.stringify(trimQuotes(value.toString()))\n}\n\nexport function stringifyObject(value: object): string {\n const items = Object.entries(value)\n .map(([key, value]) => {\n if (typeof value === 'object') {\n return `${key}: {\n ${stringifyObject(value)}\n }`\n }\n\n return `${key}: ${value}`\n })\n .filter(Boolean)\n\n return items.join(',\\n')\n}\n","export function trim(text: string): string {\n return text.replaceAll(/\\n/g, '').trim()\n}\n\nexport function trimQuotes(text: string): string {\n if (text.match(/^\"(.*)\"$/)) {\n return text.replace(/^\"(.*)\"$/, '$1')\n }\n if (text.match(/^'(.*)'$/)) {\n return text.replace(/^'(.*)'$/, '$1')\n }\n\n if (text.match(/^`(.*)`$/)) {\n return text.replace(/^`(.*)`$/, '$1')\n }\n\n return text\n}\n","import { jsStringEscape } from './escape'\nimport { trimQuotes } from './trim'\n\nfunction stringToRegex(text: string) {\n const isStartWithSlash = text.startsWith('/')\n const isEndWithSlash = text.endsWith('/')\n\n return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined))\n}\n\n/**\n * @experimental\n */\nexport function toRegExp(text: string | RegExp): RegExp {\n if (typeof text === 'string') {\n const source = trimQuotes(text)\n\n return stringToRegex(source)\n }\n\n return stringToRegex(text.toString())\n}\n\nexport function toRegExpString(text: string, func = 'RegExp'): string {\n const isStartWithSlash = text.startsWith('/')\n const isEndWithSlash = text.endsWith('/')\n\n const regexp = `new ${func}('${jsStringEscape(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined))}')`\n\n return regexp\n}\n"]}
@@ -44,7 +44,7 @@ type Options = {
44
44
  };
45
45
  declare function searchAndReplace(options: Options): string;
46
46
 
47
- declare function stringify(value: string | number | undefined): string;
47
+ declare function stringify(value: string | number | boolean | undefined): string;
48
48
  declare function stringifyObject(value: object): string;
49
49
 
50
50
  /**
@@ -57,7 +57,6 @@ declare function transformReservedWord(word: string): string;
57
57
 
58
58
  declare function trim(text: string): string;
59
59
  declare function trimQuotes(text: string): string;
60
- declare function trimExtName(text: string): string;
61
60
 
62
61
  declare const _default: {
63
62
  readonly combineCodes: typeof combineCodes;
@@ -73,7 +72,6 @@ declare const _default: {
73
72
  readonly toRegExpString: typeof toRegExpString;
74
73
  readonly trim: typeof trim;
75
74
  readonly trimQuotes: typeof trimQuotes;
76
- readonly trimExtName: typeof trimExtName;
77
75
  readonly JSDoc: {
78
76
  readonly createJSDocBlockText: typeof createJSDocBlockText;
79
77
  };
@@ -84,4 +82,4 @@ declare const _default: {
84
82
  readonly pathCase: typeof pathCase;
85
83
  };
86
84
 
87
- export { camelCase, combineCodes, createIndent, createJSDocBlockText, _default as default, escape, jsStringEscape, nameSorter, pascalCase, pathCase, searchAndReplace, stringify, stringifyObject, toRegExp, toRegExpString, transformReservedWord, trim, trimExtName, trimQuotes };
85
+ export { camelCase, combineCodes, createIndent, createJSDocBlockText, _default as default, escape, jsStringEscape, nameSorter, pascalCase, pathCase, searchAndReplace, stringify, stringifyObject, toRegExp, toRegExpString, transformReservedWord, trim, trimQuotes };
@@ -44,7 +44,7 @@ type Options = {
44
44
  };
45
45
  declare function searchAndReplace(options: Options): string;
46
46
 
47
- declare function stringify(value: string | number | undefined): string;
47
+ declare function stringify(value: string | number | boolean | undefined): string;
48
48
  declare function stringifyObject(value: object): string;
49
49
 
50
50
  /**
@@ -57,7 +57,6 @@ declare function transformReservedWord(word: string): string;
57
57
 
58
58
  declare function trim(text: string): string;
59
59
  declare function trimQuotes(text: string): string;
60
- declare function trimExtName(text: string): string;
61
60
 
62
61
  declare const _default: {
63
62
  readonly combineCodes: typeof combineCodes;
@@ -73,7 +72,6 @@ declare const _default: {
73
72
  readonly toRegExpString: typeof toRegExpString;
74
73
  readonly trim: typeof trim;
75
74
  readonly trimQuotes: typeof trimQuotes;
76
- readonly trimExtName: typeof trimExtName;
77
75
  readonly JSDoc: {
78
76
  readonly createJSDocBlockText: typeof createJSDocBlockText;
79
77
  };
@@ -84,4 +82,4 @@ declare const _default: {
84
82
  readonly pathCase: typeof pathCase;
85
83
  };
86
84
 
87
- export { camelCase, combineCodes, createIndent, createJSDocBlockText, _default as default, escape, jsStringEscape, nameSorter, pascalCase, pathCase, searchAndReplace, stringify, stringifyObject, toRegExp, toRegExpString, transformReservedWord, trim, trimExtName, trimQuotes };
85
+ export { camelCase, combineCodes, createIndent, createJSDocBlockText, _default as default, escape, jsStringEscape, nameSorter, pascalCase, pathCase, searchAndReplace, stringify, stringifyObject, toRegExp, toRegExpString, transformReservedWord, trim, trimQuotes };
@@ -1,50 +1,164 @@
1
- import {
1
+ import { transformReservedWord } from './chunk-2EU7DMPM.js';
2
+ export { transformReservedWord } from './chunk-2EU7DMPM.js';
3
+ import { orderBy, camelCase, pascalCase, pathCase } from './chunk-4X5FFJPJ.js';
4
+ export { camelCase, orderBy, pascalCase, pathCase } from './chunk-4X5FFJPJ.js';
5
+ import { merge } from 'remeda';
6
+ export { merge } from 'remeda';
7
+
8
+ // src/transformers/combineCodes.ts
9
+ function combineCodes(codes) {
10
+ return codes.join("\n");
11
+ }
12
+
13
+ // src/transformers/createJSDocBlockText.ts
14
+ function createJSDocBlockText({ comments }) {
15
+ const filteredComments = comments.filter(Boolean);
16
+ if (!filteredComments.length) {
17
+ return "";
18
+ }
19
+ return `/**
20
+ * ${filteredComments.join("\n * ")}
21
+ */`;
22
+ }
23
+
24
+ // src/transformers/escape.ts
25
+ function escape(text) {
26
+ return text ? text.replaceAll("`", "\\`") : "";
27
+ }
28
+ function jsStringEscape(input) {
29
+ return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
30
+ switch (character) {
31
+ case '"':
32
+ case "'":
33
+ case "\\":
34
+ return `\\${character}`;
35
+ // Four possible LineTerminator characters need to be escaped:
36
+ case "\n":
37
+ return "\\n";
38
+ case "\r":
39
+ return "\\r";
40
+ case "\u2028":
41
+ return "\\u2028";
42
+ case "\u2029":
43
+ return "\\u2029";
44
+ default:
45
+ return "";
46
+ }
47
+ });
48
+ }
49
+
50
+ // src/transformers/indent.ts
51
+ function createIndent(size) {
52
+ return Array.from({ length: size + 1 }).join(" ");
53
+ }
54
+
55
+ // src/transformers/nameSorter.ts
56
+ function nameSorter(a, b) {
57
+ if (a.name < b.name) {
58
+ return -1;
59
+ }
60
+ if (a.name > b.name) {
61
+ return 1;
62
+ }
63
+ return 0;
64
+ }
65
+
66
+ // src/transformers/searchAndReplace.ts
67
+ function searchAndReplace(options) {
68
+ const { text, replaceBy, prefix = "", key } = options;
69
+ const searchValues = options.searchValues?.(prefix, key) || [
70
+ `${prefix}["${key}"]`,
71
+ `${prefix}['${key}']`,
72
+ `${prefix}[\`${key}\`]`,
73
+ `${prefix}"${key}"`,
74
+ `${prefix}'${key}'`,
75
+ `${prefix}\`${key}\``,
76
+ new RegExp(`${prefix}${key}`, "g")
77
+ ];
78
+ return searchValues.reduce((prev, searchValue) => {
79
+ return prev.toString().replaceAll(searchValue, replaceBy);
80
+ }, text);
81
+ }
82
+
83
+ // src/transformers/trim.ts
84
+ function trim(text) {
85
+ return text.replaceAll(/\n/g, "").trim();
86
+ }
87
+ function trimQuotes(text) {
88
+ if (text.match(/^"(.*)"$/)) {
89
+ return text.replace(/^"(.*)"$/, "$1");
90
+ }
91
+ if (text.match(/^'(.*)'$/)) {
92
+ return text.replace(/^'(.*)'$/, "$1");
93
+ }
94
+ if (text.match(/^`(.*)`$/)) {
95
+ return text.replace(/^`(.*)`$/, "$1");
96
+ }
97
+ return text;
98
+ }
99
+
100
+ // src/transformers/stringify.ts
101
+ function stringify(value) {
102
+ if (value === void 0 || value === null) {
103
+ return '""';
104
+ }
105
+ return JSON.stringify(trimQuotes(value.toString()));
106
+ }
107
+ function stringifyObject(value) {
108
+ const items = Object.entries(value).map(([key, value2]) => {
109
+ if (typeof value2 === "object") {
110
+ return `${key}: {
111
+ ${stringifyObject(value2)}
112
+ }`;
113
+ }
114
+ return `${key}: ${value2}`;
115
+ }).filter(Boolean);
116
+ return items.join(",\n");
117
+ }
118
+
119
+ // src/transformers/toRegExp.ts
120
+ function stringToRegex(text) {
121
+ const isStartWithSlash = text.startsWith("/");
122
+ const isEndWithSlash = text.endsWith("/");
123
+ return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0));
124
+ }
125
+ function toRegExp(text) {
126
+ if (typeof text === "string") {
127
+ const source = trimQuotes(text);
128
+ return stringToRegex(source);
129
+ }
130
+ return stringToRegex(text.toString());
131
+ }
132
+ function toRegExpString(text, func = "RegExp") {
133
+ const isStartWithSlash = text.startsWith("/");
134
+ const isEndWithSlash = text.endsWith("/");
135
+ const regexp = `new ${func}('${jsStringEscape(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : void 0))}')`;
136
+ return regexp;
137
+ }
138
+ var transformers_default = {
2
139
  combineCodes,
3
- createIndent,
4
- createJSDocBlockText,
5
140
  escape,
6
141
  jsStringEscape,
7
- merge,
142
+ createIndent,
143
+ transformReservedWord,
8
144
  nameSorter,
9
145
  searchAndReplace,
10
146
  stringify,
11
147
  stringifyObject,
12
148
  toRegExp,
13
149
  toRegExpString,
14
- transformReservedWord,
15
- transformers_default,
16
150
  trim,
17
- trimExtName,
18
- trimQuotes
19
- } from "./chunk-JKZG2IJR.js";
20
- import {
21
- camelCase,
151
+ trimQuotes,
152
+ JSDoc: {
153
+ createJSDocBlockText
154
+ },
22
155
  orderBy,
23
- pascalCase,
24
- pathCase
25
- } from "./chunk-4X5FFJPJ.js";
26
- import "./chunk-HMLY7DHA.js";
27
- export {
28
- camelCase,
29
- combineCodes,
30
- createIndent,
31
- createJSDocBlockText,
32
- transformers_default as default,
33
- escape,
34
- jsStringEscape,
35
156
  merge,
36
- nameSorter,
37
- orderBy,
157
+ camelCase,
38
158
  pascalCase,
39
- pathCase,
40
- searchAndReplace,
41
- stringify,
42
- stringifyObject,
43
- toRegExp,
44
- toRegExpString,
45
- transformReservedWord,
46
- trim,
47
- trimExtName,
48
- trimQuotes
159
+ pathCase
49
160
  };
161
+
162
+ export { combineCodes, createIndent, createJSDocBlockText, transformers_default as default, escape, jsStringEscape, nameSorter, searchAndReplace, stringify, stringifyObject, toRegExp, toRegExpString, trim, trimQuotes };
163
+ //# sourceMappingURL=transformers.js.map
50
164
  //# sourceMappingURL=transformers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts","../src/transformers/searchAndReplace.ts","../src/transformers/trim.ts","../src/transformers/stringify.ts","../src/transformers/toRegExp.ts","../src/transformers/index.ts"],"names":["value"],"mappings":"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","file":"transformers.js","sourcesContent":["export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return `\\\\${character}`\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n","type Options = {\n text: string\n replaceBy: string\n prefix?: string\n key: string\n searchValues?: (prefix: string, key: string) => Array<RegExp | string>\n}\n\nexport function searchAndReplace(options: Options): string {\n const { text, replaceBy, prefix = '', key } = options\n\n const searchValues = options.searchValues?.(prefix, key) || [\n `${prefix}[\"${key}\"]`,\n `${prefix}['${key}']`,\n `${prefix}[\\`${key}\\`]`,\n `${prefix}\"${key}\"`,\n `${prefix}'${key}'`,\n `${prefix}\\`${key}\\``,\n new RegExp(`${prefix}${key}`, 'g'),\n ]\n\n return searchValues.reduce((prev, searchValue) => {\n return prev.toString().replaceAll(searchValue, replaceBy)\n }, text) as string\n}\n","export function trim(text: string): string {\n return text.replaceAll(/\\n/g, '').trim()\n}\n\nexport function trimQuotes(text: string): string {\n if (text.match(/^\"(.*)\"$/)) {\n return text.replace(/^\"(.*)\"$/, '$1')\n }\n if (text.match(/^'(.*)'$/)) {\n return text.replace(/^'(.*)'$/, '$1')\n }\n\n if (text.match(/^`(.*)`$/)) {\n return text.replace(/^`(.*)`$/, '$1')\n }\n\n return text\n}\n","import { trimQuotes } from './trim'\n\nexport function stringify(value: string | number | boolean | undefined): string {\n if (value === undefined || value === null) {\n return '\"\"'\n }\n\n return JSON.stringify(trimQuotes(value.toString()))\n}\n\nexport function stringifyObject(value: object): string {\n const items = Object.entries(value)\n .map(([key, value]) => {\n if (typeof value === 'object') {\n return `${key}: {\n ${stringifyObject(value)}\n }`\n }\n\n return `${key}: ${value}`\n })\n .filter(Boolean)\n\n return items.join(',\\n')\n}\n","import { jsStringEscape } from './escape'\nimport { trimQuotes } from './trim'\n\nfunction stringToRegex(text: string) {\n const isStartWithSlash = text.startsWith('/')\n const isEndWithSlash = text.endsWith('/')\n\n return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined))\n}\n\n/**\n * @experimental\n */\nexport function toRegExp(text: string | RegExp): RegExp {\n if (typeof text === 'string') {\n const source = trimQuotes(text)\n\n return stringToRegex(source)\n }\n\n return stringToRegex(text.toString())\n}\n\nexport function toRegExpString(text: string, func = 'RegExp'): string {\n const isStartWithSlash = text.startsWith('/')\n const isEndWithSlash = text.endsWith('/')\n\n const regexp = `new ${func}('${jsStringEscape(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined))}')`\n\n return regexp\n}\n","import { orderBy } from 'natural-orderby'\nimport { merge } from 'remeda'\n\nimport { camelCase, pascalCase, pathCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { stringify, stringifyObject } from './stringify.ts'\nimport { toRegExp, toRegExpString } from './toRegExp.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimQuotes } from './trim.ts'\n\nexport { camelCase, pascalCase, pathCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { stringify, stringifyObject } from './stringify.ts'\nexport { toRegExp, toRegExpString } from './toRegExp.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimQuotes } from './trim.ts'\nexport { merge } from 'remeda'\nexport { orderBy } from 'natural-orderby'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n stringify,\n stringifyObject,\n toRegExp,\n toRegExpString,\n trim,\n trimQuotes,\n JSDoc: {\n createJSDocBlockText,\n },\n orderBy,\n merge,\n camelCase,\n pascalCase,\n pathCase,\n} as const\n"]}