@kubb/core 2.0.0-beta.1 → 2.0.0-beta.10

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 (44) hide show
  1. package/dist/index.cjs +292 -240
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +61 -61
  4. package/dist/index.d.ts +61 -61
  5. package/dist/index.js +289 -236
  6. package/dist/index.js.map +1 -1
  7. package/dist/transformers.cjs +222 -0
  8. package/dist/transformers.cjs.map +1 -0
  9. package/dist/transformers.d.cts +55 -0
  10. package/dist/transformers.d.ts +55 -0
  11. package/dist/transformers.js +207 -0
  12. package/dist/transformers.js.map +1 -0
  13. package/dist/utils.cjs +302 -274
  14. package/dist/utils.cjs.map +1 -1
  15. package/dist/utils.d.cts +515 -67
  16. package/dist/utils.d.ts +515 -67
  17. package/dist/utils.js +303 -274
  18. package/dist/utils.js.map +1 -1
  19. package/package.json +14 -9
  20. package/src/BarrelManager.ts +55 -65
  21. package/src/FileManager.ts +93 -24
  22. package/src/PluginManager.ts +35 -17
  23. package/src/build.ts +1 -11
  24. package/src/index.ts +0 -1
  25. package/src/plugin.ts +4 -4
  26. package/src/transformers/casing.ts +9 -0
  27. package/src/transformers/createJSDocBlockText.ts +9 -0
  28. package/src/transformers/index.ts +36 -0
  29. package/src/transformers/trim.ts +7 -0
  30. package/src/types.ts +22 -41
  31. package/src/utils/FunctionParams.ts +3 -2
  32. package/src/utils/TreeNode.ts +6 -3
  33. package/src/utils/URLPath.ts +5 -5
  34. package/src/utils/index.ts +0 -1
  35. package/src/SchemaGenerator.ts +0 -8
  36. package/src/utils/transformers/createJSDocBlockText.ts +0 -15
  37. package/src/utils/transformers/index.ts +0 -22
  38. package/src/utils/transformers/trim.ts +0 -3
  39. /package/src/{utils/transformers → transformers}/combineCodes.ts +0 -0
  40. /package/src/{utils/transformers → transformers}/escape.ts +0 -0
  41. /package/src/{utils/transformers → transformers}/indent.ts +0 -0
  42. /package/src/{utils/transformers → transformers}/nameSorter.ts +0 -0
  43. /package/src/{utils/transformers → transformers}/searchAndReplace.ts +0 -0
  44. /package/src/{utils/transformers → transformers}/transformReservedWord.ts +0 -0
@@ -0,0 +1,222 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var changeCase = require('change-case');
6
+
7
+ // src/transformers/casing.ts
8
+ function camelCase(text) {
9
+ return changeCase.camelCase(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: changeCase.camelCaseTransformMerge });
10
+ }
11
+ function pascalCase(text) {
12
+ return changeCase.pascalCase(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: changeCase.pascalCaseTransformMerge });
13
+ }
14
+
15
+ // src/transformers/combineCodes.ts
16
+ function combineCodes(codes) {
17
+ return codes.join("\n");
18
+ }
19
+
20
+ // src/transformers/createJSDocBlockText.ts
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
+ function escape(text) {
33
+ return text ? text.replaceAll("`", "\\`") : "";
34
+ }
35
+ function jsStringEscape(input) {
36
+ return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
37
+ switch (character) {
38
+ case '"':
39
+ case "'":
40
+ case "\\":
41
+ return "\\" + character;
42
+ case "\n":
43
+ return "\\n";
44
+ case "\r":
45
+ return "\\r";
46
+ case "\u2028":
47
+ return "\\u2028";
48
+ case "\u2029":
49
+ return "\\u2029";
50
+ default:
51
+ return "";
52
+ }
53
+ });
54
+ }
55
+
56
+ // src/transformers/indent.ts
57
+ function createIndent(size) {
58
+ return Array.from({ length: size + 1 }).join(" ");
59
+ }
60
+
61
+ // src/transformers/nameSorter.ts
62
+ function nameSorter(a, b) {
63
+ if (a.name < b.name) {
64
+ return -1;
65
+ }
66
+ if (a.name > b.name) {
67
+ return 1;
68
+ }
69
+ return 0;
70
+ }
71
+
72
+ // src/transformers/searchAndReplace.ts
73
+ function searchAndReplace(options) {
74
+ const { text, replaceBy, prefix = "", key } = options;
75
+ const searchValues = options.searchValues?.(prefix, key) || [
76
+ `${prefix}["${key}"]`,
77
+ `${prefix}['${key}']`,
78
+ `${prefix}[\`${key}\`]`,
79
+ `${prefix}"${key}"`,
80
+ `${prefix}'${key}'`,
81
+ `${prefix}\`${key}\``,
82
+ new RegExp(`${prefix}${key}`, "g")
83
+ ];
84
+ return searchValues.reduce((prev, searchValue) => {
85
+ return prev.toString().replaceAll(searchValue, replaceBy);
86
+ }, text);
87
+ }
88
+
89
+ // src/transformers/transformReservedWord.ts
90
+ var reservedWords = [
91
+ "abstract",
92
+ "arguments",
93
+ "boolean",
94
+ "break",
95
+ "byte",
96
+ "case",
97
+ "catch",
98
+ "char",
99
+ "class",
100
+ "const",
101
+ "continue",
102
+ "debugger",
103
+ "default",
104
+ "delete",
105
+ "do",
106
+ "double",
107
+ "else",
108
+ "enum",
109
+ "eval",
110
+ "export",
111
+ "extends",
112
+ "false",
113
+ "final",
114
+ "finally",
115
+ "float",
116
+ "for",
117
+ "function",
118
+ "goto",
119
+ "if",
120
+ "implements",
121
+ "import",
122
+ "in",
123
+ "instanceof",
124
+ "int",
125
+ "interface",
126
+ "let",
127
+ "long",
128
+ "native",
129
+ "new",
130
+ "null",
131
+ "package",
132
+ "private",
133
+ "protected",
134
+ "public",
135
+ "return",
136
+ "short",
137
+ "static",
138
+ "super",
139
+ "switch",
140
+ "synchronized",
141
+ "this",
142
+ "throw",
143
+ "throws",
144
+ "transient",
145
+ "true",
146
+ "try",
147
+ "typeof",
148
+ "var",
149
+ "void",
150
+ "volatile",
151
+ "while",
152
+ "with",
153
+ "yield",
154
+ "Array",
155
+ "Date",
156
+ "eval",
157
+ "function",
158
+ "hasOwnProperty",
159
+ "Infinity",
160
+ "isFinite",
161
+ "isNaN",
162
+ "isPrototypeOf",
163
+ "length",
164
+ "Math",
165
+ "name",
166
+ "NaN",
167
+ "Number",
168
+ "Object",
169
+ "prototype",
170
+ "String",
171
+ "toString",
172
+ "undefined",
173
+ "valueOf"
174
+ ];
175
+ function transformReservedWord(word) {
176
+ if (word && reservedWords.includes(word) || word?.match(/^\d/)) {
177
+ return `_${word}`;
178
+ }
179
+ return word;
180
+ }
181
+
182
+ // src/transformers/trim.ts
183
+ function trim(text) {
184
+ return text.replaceAll(/\n/g, "").trim();
185
+ }
186
+ function trimExtName(text) {
187
+ return text.replace(/\.[^/.]+$/, "");
188
+ }
189
+
190
+ // src/transformers/index.ts
191
+ var transformers_default = {
192
+ combineCodes,
193
+ escape,
194
+ jsStringEscape,
195
+ createIndent,
196
+ transformReservedWord,
197
+ nameSorter,
198
+ searchAndReplace,
199
+ trim,
200
+ trimExtName,
201
+ JSDoc: {
202
+ createJSDocBlockText
203
+ },
204
+ camelCase,
205
+ pascalCase
206
+ };
207
+
208
+ exports.camelCase = camelCase;
209
+ exports.combineCodes = combineCodes;
210
+ exports.createIndent = createIndent;
211
+ exports.createJSDocBlockText = createJSDocBlockText;
212
+ exports.default = transformers_default;
213
+ exports.escape = escape;
214
+ exports.jsStringEscape = jsStringEscape;
215
+ exports.nameSorter = nameSorter;
216
+ exports.pascalCase = pascalCase;
217
+ exports.searchAndReplace = searchAndReplace;
218
+ exports.transformReservedWord = transformReservedWord;
219
+ exports.trim = trim;
220
+ exports.trimExtName = trimExtName;
221
+ //# sourceMappingURL=out.js.map
222
+ //# sourceMappingURL=transformers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/transformers/casing.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/transformReservedWord.ts","../src/transformers/trim.ts","../src/transformers/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { camelCase as changeCaseCamel, camelCaseTransformMerge, pascalCase as changePascalCase, pascalCaseTransformMerge } from 'change-case'\n\nexport function camelCase(text: string): string {\n return changeCaseCamel(text, { delimiter: '', stripRegexp: /[^A-Z0-9$]/gi, transform: camelCaseTransformMerge })\n}\n\nexport function pascalCase(text: string): string {\n return changePascalCase(text, { delimiter: '', stripRegexp: /[^A-Z0-9$]/gi, transform: pascalCaseTransformMerge })\n}\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// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\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","/**\n * @link https://github.com/jonschlinkert/reserved/blob/master/index.js\n */\nconst reservedWords = [\n 'abstract',\n 'arguments',\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'eval',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'let',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n 'yield',\n\n 'Array',\n 'Date',\n 'eval',\n 'function',\n 'hasOwnProperty',\n 'Infinity',\n 'isFinite',\n 'isNaN',\n 'isPrototypeOf',\n 'length',\n 'Math',\n 'name',\n 'NaN',\n 'Number',\n 'Object',\n 'prototype',\n 'String',\n 'toString',\n 'undefined',\n 'valueOf',\n]\n\nexport function transformReservedWord(word: string): string {\n if ((word && reservedWords.includes(word)) || word?.match(/^\\d/)) {\n return `_${word}`\n }\n\n return word\n}\n","export function trim(text: string): string {\n return text.replaceAll(/\\n/g, '').trim()\n}\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","import { camelCase, pascalCase } 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 { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName } from './trim.ts'\n\nexport { camelCase, pascalCase } 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 { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName } from './trim.ts'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n trim,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n camelCase,\n pascalCase,\n} as const\n"]}
@@ -0,0 +1,55 @@
1
+ declare function camelCase(text: string): string;
2
+ declare function pascalCase(text: string): string;
3
+
4
+ declare function combineCodes(codes: string[]): string;
5
+
6
+ declare function createJSDocBlockText({ comments }: {
7
+ comments: Array<string>;
8
+ }): string;
9
+
10
+ declare function escape(text?: string): string;
11
+ /**
12
+ * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on
13
+ * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
14
+ * @link https://github.com/joliss/js-string-escape/blob/master/index.js
15
+ */
16
+ declare function jsStringEscape(input: any): string;
17
+
18
+ declare function createIndent(size: number): string;
19
+
20
+ declare function nameSorter<T extends {
21
+ name: string;
22
+ }>(a: T, b: T): 0 | 1 | -1;
23
+
24
+ type Options = {
25
+ text: string;
26
+ replaceBy: string;
27
+ prefix?: string;
28
+ key: string;
29
+ searchValues?: (prefix: string, key: string) => Array<RegExp | string>;
30
+ };
31
+ declare function searchAndReplace(options: Options): string;
32
+
33
+ declare function transformReservedWord(word: string): string;
34
+
35
+ declare function trim(text: string): string;
36
+ declare function trimExtName(text: string): string;
37
+
38
+ declare const _default: {
39
+ readonly combineCodes: typeof combineCodes;
40
+ readonly escape: typeof escape;
41
+ readonly jsStringEscape: typeof jsStringEscape;
42
+ readonly createIndent: typeof createIndent;
43
+ readonly transformReservedWord: typeof transformReservedWord;
44
+ readonly nameSorter: typeof nameSorter;
45
+ readonly searchAndReplace: typeof searchAndReplace;
46
+ readonly trim: typeof trim;
47
+ readonly trimExtName: typeof trimExtName;
48
+ readonly JSDoc: {
49
+ readonly createJSDocBlockText: typeof createJSDocBlockText;
50
+ };
51
+ readonly camelCase: typeof camelCase;
52
+ readonly pascalCase: typeof pascalCase;
53
+ };
54
+
55
+ export { camelCase, combineCodes, createIndent, createJSDocBlockText, _default as default, escape, jsStringEscape, nameSorter, pascalCase, searchAndReplace, transformReservedWord, trim, trimExtName };
@@ -0,0 +1,55 @@
1
+ declare function camelCase(text: string): string;
2
+ declare function pascalCase(text: string): string;
3
+
4
+ declare function combineCodes(codes: string[]): string;
5
+
6
+ declare function createJSDocBlockText({ comments }: {
7
+ comments: Array<string>;
8
+ }): string;
9
+
10
+ declare function escape(text?: string): string;
11
+ /**
12
+ * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on
13
+ * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
14
+ * @link https://github.com/joliss/js-string-escape/blob/master/index.js
15
+ */
16
+ declare function jsStringEscape(input: any): string;
17
+
18
+ declare function createIndent(size: number): string;
19
+
20
+ declare function nameSorter<T extends {
21
+ name: string;
22
+ }>(a: T, b: T): 0 | 1 | -1;
23
+
24
+ type Options = {
25
+ text: string;
26
+ replaceBy: string;
27
+ prefix?: string;
28
+ key: string;
29
+ searchValues?: (prefix: string, key: string) => Array<RegExp | string>;
30
+ };
31
+ declare function searchAndReplace(options: Options): string;
32
+
33
+ declare function transformReservedWord(word: string): string;
34
+
35
+ declare function trim(text: string): string;
36
+ declare function trimExtName(text: string): string;
37
+
38
+ declare const _default: {
39
+ readonly combineCodes: typeof combineCodes;
40
+ readonly escape: typeof escape;
41
+ readonly jsStringEscape: typeof jsStringEscape;
42
+ readonly createIndent: typeof createIndent;
43
+ readonly transformReservedWord: typeof transformReservedWord;
44
+ readonly nameSorter: typeof nameSorter;
45
+ readonly searchAndReplace: typeof searchAndReplace;
46
+ readonly trim: typeof trim;
47
+ readonly trimExtName: typeof trimExtName;
48
+ readonly JSDoc: {
49
+ readonly createJSDocBlockText: typeof createJSDocBlockText;
50
+ };
51
+ readonly camelCase: typeof camelCase;
52
+ readonly pascalCase: typeof pascalCase;
53
+ };
54
+
55
+ export { camelCase, combineCodes, createIndent, createJSDocBlockText, _default as default, escape, jsStringEscape, nameSorter, pascalCase, searchAndReplace, transformReservedWord, trim, trimExtName };
@@ -0,0 +1,207 @@
1
+ import { createRequire } from 'module';
2
+ import { camelCase as camelCase$1, camelCaseTransformMerge, pascalCase as pascalCase$1, pascalCaseTransformMerge } from 'change-case';
3
+
4
+ createRequire(import.meta.url);
5
+ function camelCase(text) {
6
+ return camelCase$1(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: camelCaseTransformMerge });
7
+ }
8
+ function pascalCase(text) {
9
+ return pascalCase$1(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: pascalCaseTransformMerge });
10
+ }
11
+
12
+ // src/transformers/combineCodes.ts
13
+ function combineCodes(codes) {
14
+ return codes.join("\n");
15
+ }
16
+
17
+ // src/transformers/createJSDocBlockText.ts
18
+ function createJSDocBlockText({ comments }) {
19
+ const filteredComments = comments.filter(Boolean);
20
+ if (!filteredComments.length) {
21
+ return "";
22
+ }
23
+ return `/**
24
+ * ${filteredComments.join("\n * ")}
25
+ */`;
26
+ }
27
+
28
+ // src/transformers/escape.ts
29
+ function escape(text) {
30
+ return text ? text.replaceAll("`", "\\`") : "";
31
+ }
32
+ function jsStringEscape(input) {
33
+ return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
34
+ switch (character) {
35
+ case '"':
36
+ case "'":
37
+ case "\\":
38
+ return "\\" + character;
39
+ case "\n":
40
+ return "\\n";
41
+ case "\r":
42
+ return "\\r";
43
+ case "\u2028":
44
+ return "\\u2028";
45
+ case "\u2029":
46
+ return "\\u2029";
47
+ default:
48
+ return "";
49
+ }
50
+ });
51
+ }
52
+
53
+ // src/transformers/indent.ts
54
+ function createIndent(size) {
55
+ return Array.from({ length: size + 1 }).join(" ");
56
+ }
57
+
58
+ // src/transformers/nameSorter.ts
59
+ function nameSorter(a, b) {
60
+ if (a.name < b.name) {
61
+ return -1;
62
+ }
63
+ if (a.name > b.name) {
64
+ return 1;
65
+ }
66
+ return 0;
67
+ }
68
+
69
+ // src/transformers/searchAndReplace.ts
70
+ function searchAndReplace(options) {
71
+ const { text, replaceBy, prefix = "", key } = options;
72
+ const searchValues = options.searchValues?.(prefix, key) || [
73
+ `${prefix}["${key}"]`,
74
+ `${prefix}['${key}']`,
75
+ `${prefix}[\`${key}\`]`,
76
+ `${prefix}"${key}"`,
77
+ `${prefix}'${key}'`,
78
+ `${prefix}\`${key}\``,
79
+ new RegExp(`${prefix}${key}`, "g")
80
+ ];
81
+ return searchValues.reduce((prev, searchValue) => {
82
+ return prev.toString().replaceAll(searchValue, replaceBy);
83
+ }, text);
84
+ }
85
+
86
+ // src/transformers/transformReservedWord.ts
87
+ var reservedWords = [
88
+ "abstract",
89
+ "arguments",
90
+ "boolean",
91
+ "break",
92
+ "byte",
93
+ "case",
94
+ "catch",
95
+ "char",
96
+ "class",
97
+ "const",
98
+ "continue",
99
+ "debugger",
100
+ "default",
101
+ "delete",
102
+ "do",
103
+ "double",
104
+ "else",
105
+ "enum",
106
+ "eval",
107
+ "export",
108
+ "extends",
109
+ "false",
110
+ "final",
111
+ "finally",
112
+ "float",
113
+ "for",
114
+ "function",
115
+ "goto",
116
+ "if",
117
+ "implements",
118
+ "import",
119
+ "in",
120
+ "instanceof",
121
+ "int",
122
+ "interface",
123
+ "let",
124
+ "long",
125
+ "native",
126
+ "new",
127
+ "null",
128
+ "package",
129
+ "private",
130
+ "protected",
131
+ "public",
132
+ "return",
133
+ "short",
134
+ "static",
135
+ "super",
136
+ "switch",
137
+ "synchronized",
138
+ "this",
139
+ "throw",
140
+ "throws",
141
+ "transient",
142
+ "true",
143
+ "try",
144
+ "typeof",
145
+ "var",
146
+ "void",
147
+ "volatile",
148
+ "while",
149
+ "with",
150
+ "yield",
151
+ "Array",
152
+ "Date",
153
+ "eval",
154
+ "function",
155
+ "hasOwnProperty",
156
+ "Infinity",
157
+ "isFinite",
158
+ "isNaN",
159
+ "isPrototypeOf",
160
+ "length",
161
+ "Math",
162
+ "name",
163
+ "NaN",
164
+ "Number",
165
+ "Object",
166
+ "prototype",
167
+ "String",
168
+ "toString",
169
+ "undefined",
170
+ "valueOf"
171
+ ];
172
+ function transformReservedWord(word) {
173
+ if (word && reservedWords.includes(word) || word?.match(/^\d/)) {
174
+ return `_${word}`;
175
+ }
176
+ return word;
177
+ }
178
+
179
+ // src/transformers/trim.ts
180
+ function trim(text) {
181
+ return text.replaceAll(/\n/g, "").trim();
182
+ }
183
+ function trimExtName(text) {
184
+ return text.replace(/\.[^/.]+$/, "");
185
+ }
186
+
187
+ // src/transformers/index.ts
188
+ var transformers_default = {
189
+ combineCodes,
190
+ escape,
191
+ jsStringEscape,
192
+ createIndent,
193
+ transformReservedWord,
194
+ nameSorter,
195
+ searchAndReplace,
196
+ trim,
197
+ trimExtName,
198
+ JSDoc: {
199
+ createJSDocBlockText
200
+ },
201
+ camelCase,
202
+ pascalCase
203
+ };
204
+
205
+ export { camelCase, combineCodes, createIndent, createJSDocBlockText, transformers_default as default, escape, jsStringEscape, nameSorter, pascalCase, searchAndReplace, transformReservedWord, trim, trimExtName };
206
+ //# sourceMappingURL=out.js.map
207
+ //# sourceMappingURL=transformers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/transformers/casing.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/transformReservedWord.ts","../src/transformers/trim.ts","../src/transformers/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { camelCase as changeCaseCamel, camelCaseTransformMerge, pascalCase as changePascalCase, pascalCaseTransformMerge } from 'change-case'\n\nexport function camelCase(text: string): string {\n return changeCaseCamel(text, { delimiter: '', stripRegexp: /[^A-Z0-9$]/gi, transform: camelCaseTransformMerge })\n}\n\nexport function pascalCase(text: string): string {\n return changePascalCase(text, { delimiter: '', stripRegexp: /[^A-Z0-9$]/gi, transform: pascalCaseTransformMerge })\n}\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// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\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","/**\n * @link https://github.com/jonschlinkert/reserved/blob/master/index.js\n */\nconst reservedWords = [\n 'abstract',\n 'arguments',\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'eval',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'let',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n 'yield',\n\n 'Array',\n 'Date',\n 'eval',\n 'function',\n 'hasOwnProperty',\n 'Infinity',\n 'isFinite',\n 'isNaN',\n 'isPrototypeOf',\n 'length',\n 'Math',\n 'name',\n 'NaN',\n 'Number',\n 'Object',\n 'prototype',\n 'String',\n 'toString',\n 'undefined',\n 'valueOf',\n]\n\nexport function transformReservedWord(word: string): string {\n if ((word && reservedWords.includes(word)) || word?.match(/^\\d/)) {\n return `_${word}`\n }\n\n return word\n}\n","export function trim(text: string): string {\n return text.replaceAll(/\\n/g, '').trim()\n}\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","import { camelCase, pascalCase } 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 { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName } from './trim.ts'\n\nexport { camelCase, pascalCase } 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 { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName } from './trim.ts'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n trim,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n camelCase,\n pascalCase,\n} as const\n"]}