@wexample/js-helpers 0.0.22 → 0.0.24
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/README.md +1 -1
- package/dist/Common/AsyncConstructor.js +39 -44
- package/dist/Common/AsyncConstructor.js.map +1 -1
- package/dist/Helper/Array.js +18 -19
- package/dist/Helper/Array.js.map +1 -1
- package/dist/Helper/Bytes.js +9 -13
- package/dist/Helper/Bytes.js.map +1 -1
- package/dist/Helper/Dom.js +61 -58
- package/dist/Helper/Dom.js.map +1 -1
- package/dist/Helper/Event.js +27 -31
- package/dist/Helper/Event.js.map +1 -1
- package/dist/Helper/Function.js +2 -6
- package/dist/Helper/Function.js.map +1 -1
- package/dist/Helper/KeyCode.js +2 -6
- package/dist/Helper/KeyCode.js.map +1 -1
- package/dist/Helper/Location.js +41 -43
- package/dist/Helper/Location.js.map +1 -1
- package/dist/Helper/Log.js +21 -25
- package/dist/Helper/Log.js.map +1 -1
- package/dist/Helper/Mixin.js +26 -24
- package/dist/Helper/Mixin.js.map +1 -1
- package/dist/Helper/Object.js +81 -86
- package/dist/Helper/Object.js.map +1 -1
- package/dist/Helper/Pointer.js +2 -6
- package/dist/Helper/Pointer.js.map +1 -1
- package/dist/Helper/Queue.js +72 -74
- package/dist/Helper/Queue.js.map +1 -1
- package/dist/Helper/String.js +250 -200
- package/dist/Helper/String.js.map +1 -1
- package/dist/Helper/Time.js +4 -8
- package/dist/Helper/Time.js.map +1 -1
- package/dist/Helper/Url.js +14 -18
- package/dist/Helper/Url.js.map +1 -1
- package/dist/Helper/Variables.js +9 -13
- package/dist/Helper/Variables.js.map +1 -1
- package/package.json +4 -11
- package/dist/Common/AsyncConstructor.cjs +0 -49
- package/dist/Common/AsyncConstructor.cjs.map +0 -1
- package/dist/Common/AsyncConstructor.d.cts +0 -13
- package/dist/Common/AsyncConstructor.d.ts +0 -13
- package/dist/Helper/Array.cjs +0 -33
- package/dist/Helper/Array.cjs.map +0 -1
- package/dist/Helper/Array.d.cts +0 -11
- package/dist/Helper/Array.d.ts +0 -11
- package/dist/Helper/Bytes.cjs +0 -17
- package/dist/Helper/Bytes.cjs.map +0 -1
- package/dist/Helper/Bytes.d.cts +0 -3
- package/dist/Helper/Bytes.d.ts +0 -3
- package/dist/Helper/Dom.cjs +0 -83
- package/dist/Helper/Dom.cjs.map +0 -1
- package/dist/Helper/Dom.d.cts +0 -32
- package/dist/Helper/Dom.d.ts +0 -32
- package/dist/Helper/Event.cjs +0 -35
- package/dist/Helper/Event.cjs.map +0 -1
- package/dist/Helper/Event.d.cts +0 -31
- package/dist/Helper/Event.d.ts +0 -31
- package/dist/Helper/Function.cjs +0 -10
- package/dist/Helper/Function.cjs.map +0 -1
- package/dist/Helper/Function.d.cts +0 -3
- package/dist/Helper/Function.d.ts +0 -3
- package/dist/Helper/KeyCode.cjs +0 -10
- package/dist/Helper/KeyCode.cjs.map +0 -1
- package/dist/Helper/KeyCode.d.cts +0 -6
- package/dist/Helper/KeyCode.d.ts +0 -6
- package/dist/Helper/Location.cjs +0 -57
- package/dist/Helper/Location.cjs.map +0 -1
- package/dist/Helper/Location.d.cts +0 -9
- package/dist/Helper/Location.d.ts +0 -9
- package/dist/Helper/Log.cjs +0 -37
- package/dist/Helper/Log.cjs.map +0 -1
- package/dist/Helper/Log.d.cts +0 -19
- package/dist/Helper/Log.d.ts +0 -19
- package/dist/Helper/Mixin.cjs +0 -29
- package/dist/Helper/Mixin.cjs.map +0 -1
- package/dist/Helper/Mixin.d.cts +0 -8
- package/dist/Helper/Mixin.d.ts +0 -8
- package/dist/Helper/Object.cjs +0 -103
- package/dist/Helper/Object.cjs.map +0 -1
- package/dist/Helper/Object.d.cts +0 -14
- package/dist/Helper/Object.d.ts +0 -14
- package/dist/Helper/Pointer.cjs +0 -10
- package/dist/Helper/Pointer.cjs.map +0 -1
- package/dist/Helper/Pointer.d.cts +0 -5
- package/dist/Helper/Pointer.d.ts +0 -5
- package/dist/Helper/Queue.cjs +0 -84
- package/dist/Helper/Queue.cjs.map +0 -1
- package/dist/Helper/Queue.d.cts +0 -35
- package/dist/Helper/Queue.d.ts +0 -35
- package/dist/Helper/String.cjs +0 -253
- package/dist/Helper/String.cjs.map +0 -1
- package/dist/Helper/String.d.cts +0 -50
- package/dist/Helper/String.d.ts +0 -50
- package/dist/Helper/Time.cjs +0 -12
- package/dist/Helper/Time.cjs.map +0 -1
- package/dist/Helper/Time.d.cts +0 -3
- package/dist/Helper/Time.d.ts +0 -3
- package/dist/Helper/Url.cjs +0 -24
- package/dist/Helper/Url.cjs.map +0 -1
- package/dist/Helper/Url.d.cts +0 -4
- package/dist/Helper/Url.d.ts +0 -4
- package/dist/Helper/Variables.cjs +0 -20
- package/dist/Helper/Variables.cjs.map +0 -1
- package/dist/Helper/Variables.d.cts +0 -12
- package/dist/Helper/Variables.d.ts +0 -12
package/dist/Helper/String.js
CHANGED
|
@@ -1,211 +1,261 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
const CAMEL_REGEX = /^[a-z][a-z0-9]*([A-Z][a-z0-9]*)+$/;
|
|
2
|
+
const PASCAL_REGEX = /^[A-Z][a-zA-Z0-9]*$/;
|
|
3
|
+
const CONSTANT_REGEX = /^[A-Z][A-Z0-9_]*$/;
|
|
4
|
+
const SNAKE_REGEX = /^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;
|
|
5
|
+
const KEBAB_REGEX = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;
|
|
6
|
+
const DOT_REGEX = /^[a-z][a-z0-9]*(\.[a-z0-9]+)*$/;
|
|
7
|
+
const PATH_REGEX = /^[a-z][a-z0-9]*(\/[a-z0-9]+)*$/;
|
|
8
|
+
const TITLE_REGEX = /^[A-Z][a-z]+(\s[A-Z][a-z]+)*$/;
|
|
9
|
+
const LOREM_BASE = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' +
|
|
10
|
+
'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' +
|
|
11
|
+
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ' +
|
|
12
|
+
'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. ' +
|
|
13
|
+
'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
|
|
11
14
|
function escapeRegExp(value) {
|
|
12
|
-
|
|
15
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
13
16
|
}
|
|
14
17
|
function normalizeWords(value) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
function
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (TITLE_REGEX.test(value)) return "title";
|
|
83
|
-
const separators = (value.includes("_") ? 1 : 0) + (value.includes("-") ? 1 : 0) + (value.includes(".") ? 1 : 0) + (value.includes("/") ? 1 : 0) + (/[a-z][A-Z]/.test(value) ? 1 : 0);
|
|
84
|
-
if (separators > 1) return "mixed";
|
|
85
|
-
return "unknown";
|
|
86
|
-
}
|
|
87
|
-
function stringIsCamelCase(text) {
|
|
88
|
-
return stringDetectCase(text) === "camel";
|
|
89
|
-
}
|
|
90
|
-
function stringIsPascalCase(text) {
|
|
91
|
-
return stringDetectCase(text) === "pascal";
|
|
92
|
-
}
|
|
93
|
-
function stringIsSnakeCase(text) {
|
|
94
|
-
return stringDetectCase(text) === "snake";
|
|
95
|
-
}
|
|
96
|
-
function stringIsKebabCase(text) {
|
|
97
|
-
return stringDetectCase(text) === "kebab";
|
|
98
|
-
}
|
|
99
|
-
function stringIsConstantCase(text) {
|
|
100
|
-
return stringDetectCase(text) === "constant";
|
|
101
|
-
}
|
|
102
|
-
function stringIsDotCase(text) {
|
|
103
|
-
return stringDetectCase(text) === "dot";
|
|
104
|
-
}
|
|
105
|
-
function stringIsPathCase(text) {
|
|
106
|
-
return stringDetectCase(text) === "path";
|
|
107
|
-
}
|
|
108
|
-
function stringIsTitleCase(text) {
|
|
109
|
-
return stringDetectCase(text) === "title";
|
|
110
|
-
}
|
|
111
|
-
function stringCapitalizeFirst(text) {
|
|
112
|
-
return text ? text.charAt(0).toUpperCase() + text.slice(1) : text;
|
|
113
|
-
}
|
|
114
|
-
function stringFirstLetterLower(text) {
|
|
115
|
-
return text ? text.charAt(0).toLowerCase() + text.slice(1) : text;
|
|
116
|
-
}
|
|
117
|
-
function stringFirstLetterUpper(text) {
|
|
118
|
-
return text ? text.charAt(0).toUpperCase() + text.slice(1) : text;
|
|
119
|
-
}
|
|
120
|
-
function stringFormat(text, args) {
|
|
121
|
-
return Object.entries(args).reduce((acc, [key, value]) => {
|
|
122
|
-
return acc.replace(new RegExp(key, "g"), String(value));
|
|
123
|
-
}, text);
|
|
124
|
-
}
|
|
125
|
-
function stringToClass(text) {
|
|
126
|
-
return stringCapitalizeFirst(stringToCamelCase(text));
|
|
127
|
-
}
|
|
128
|
-
function stringToCamel(text) {
|
|
129
|
-
return stringToCamelCase(text);
|
|
130
|
-
}
|
|
131
|
-
function stringToKebab(text) {
|
|
132
|
-
return stringToKebabCase(text);
|
|
133
|
-
}
|
|
134
|
-
function stringToSnake(text) {
|
|
135
|
-
return text.replace(/(\p{Lu}+)(\p{Lu}\p{Ll})/gu, "$1_$2").replace(/([\p{Ll}0-9])(\p{Lu})/gu, "$1_$2").replace(/-(\d)/g, "$1").toLowerCase();
|
|
136
|
-
}
|
|
137
|
-
function stringToScreamingSnake(text) {
|
|
138
|
-
return stringToKebab(text).replace(/-/g, "_").toUpperCase();
|
|
139
|
-
}
|
|
140
|
-
function stringPathToTagName(text) {
|
|
141
|
-
return text.split("/").join("-").toLowerCase();
|
|
142
|
-
}
|
|
143
|
-
function stringBuildIdentifier(input) {
|
|
144
|
-
const kebab = stringToKebab(input.replace(/[^a-zA-Z0-9-]/g, "-"));
|
|
145
|
-
return kebab.replace(/-(\d)/g, "$1").replace(/-+/g, "-").replace(/^[-]+|[-]+$/g, "");
|
|
146
|
-
}
|
|
147
|
-
function stringAppendMissingLines(lines, content) {
|
|
148
|
-
let normalized = stringRemoveTrailingEmptyLines(content);
|
|
149
|
-
const currentLines = normalized.split("\n");
|
|
150
|
-
const seen = new Set(currentLines);
|
|
151
|
-
const linesToAdd = [];
|
|
152
|
-
for (const line of lines) {
|
|
153
|
-
if (!seen.has(line)) {
|
|
154
|
-
linesToAdd.push(line);
|
|
155
|
-
seen.add(line);
|
|
18
|
+
if (!value)
|
|
19
|
+
return [];
|
|
20
|
+
const trimmed = value.trim();
|
|
21
|
+
if (!trimmed)
|
|
22
|
+
return [];
|
|
23
|
+
let text = trimmed;
|
|
24
|
+
// Replace any non-alphanumeric separators with spaces.
|
|
25
|
+
text = text.replace(/[^A-Za-z0-9]+/g, ' ');
|
|
26
|
+
// Split camelCase / PascalCase.
|
|
27
|
+
text = text.replace(/([a-z0-9])([A-Z])/g, '$1 $2');
|
|
28
|
+
// Split multiple caps like "JSONParser" -> "JSON Parser".
|
|
29
|
+
text = text.replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2');
|
|
30
|
+
return text.toLowerCase().split(/\s+/).filter(Boolean);
|
|
31
|
+
}
|
|
32
|
+
// Casing conversions
|
|
33
|
+
export function stringToSnakeCase(value) {
|
|
34
|
+
return normalizeWords(value).join('_');
|
|
35
|
+
}
|
|
36
|
+
export function stringToKebabCase(value) {
|
|
37
|
+
return normalizeWords(value).join('-');
|
|
38
|
+
}
|
|
39
|
+
export function stringToDotCase(value) {
|
|
40
|
+
return normalizeWords(value).join('.');
|
|
41
|
+
}
|
|
42
|
+
export function stringToPathCase(value) {
|
|
43
|
+
return normalizeWords(value).join('/');
|
|
44
|
+
}
|
|
45
|
+
export function stringToCamelCase(value) {
|
|
46
|
+
const words = normalizeWords(value);
|
|
47
|
+
if (!words.length)
|
|
48
|
+
return '';
|
|
49
|
+
return (words[0] +
|
|
50
|
+
words
|
|
51
|
+
.slice(1)
|
|
52
|
+
.map((w) => stringCapitalizeFirst(w))
|
|
53
|
+
.join(''));
|
|
54
|
+
}
|
|
55
|
+
export function stringToPascalCase(value) {
|
|
56
|
+
return normalizeWords(value)
|
|
57
|
+
.map((w) => stringCapitalizeFirst(w))
|
|
58
|
+
.join('');
|
|
59
|
+
}
|
|
60
|
+
export function stringToConstantCase(value) {
|
|
61
|
+
return normalizeWords(value).join('_').toUpperCase();
|
|
62
|
+
}
|
|
63
|
+
export function stringToTitleCase(value) {
|
|
64
|
+
return normalizeWords(value)
|
|
65
|
+
.map((w) => stringCapitalizeFirst(w))
|
|
66
|
+
.join(' ');
|
|
67
|
+
}
|
|
68
|
+
export function stringConvertCaseMap() {
|
|
69
|
+
return {
|
|
70
|
+
snake: stringToSnakeCase,
|
|
71
|
+
kebab: stringToKebabCase,
|
|
72
|
+
camel: stringToCamelCase,
|
|
73
|
+
pascal: stringToPascalCase,
|
|
74
|
+
constant: stringToConstantCase,
|
|
75
|
+
title: stringToTitleCase,
|
|
76
|
+
dot: stringToDotCase,
|
|
77
|
+
path: stringToPathCase,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export function stringConvertCase(text, toFormat) {
|
|
81
|
+
const converters = stringConvertCaseMap();
|
|
82
|
+
const converter = converters[toFormat];
|
|
83
|
+
if (!converter) {
|
|
84
|
+
throw new Error(`Invalid format '${toFormat}'. Must be one of: ${Object.keys(converters).join(', ')}`);
|
|
156
85
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
86
|
+
return converter(text);
|
|
87
|
+
}
|
|
88
|
+
export function stringDetectCase(text) {
|
|
89
|
+
if (!text || !text.trim())
|
|
90
|
+
return 'unknown';
|
|
91
|
+
const value = text.trim();
|
|
92
|
+
if (CONSTANT_REGEX.test(value))
|
|
93
|
+
return 'constant';
|
|
94
|
+
if (SNAKE_REGEX.test(value))
|
|
95
|
+
return 'snake';
|
|
96
|
+
if (KEBAB_REGEX.test(value))
|
|
97
|
+
return 'kebab';
|
|
98
|
+
if (DOT_REGEX.test(value))
|
|
99
|
+
return 'dot';
|
|
100
|
+
if (PATH_REGEX.test(value))
|
|
101
|
+
return 'path';
|
|
102
|
+
if (CAMEL_REGEX.test(value))
|
|
103
|
+
return 'camel';
|
|
104
|
+
if (PASCAL_REGEX.test(value))
|
|
105
|
+
return 'pascal';
|
|
106
|
+
if (TITLE_REGEX.test(value))
|
|
107
|
+
return 'title';
|
|
108
|
+
const separators = (value.includes('_') ? 1 : 0) +
|
|
109
|
+
(value.includes('-') ? 1 : 0) +
|
|
110
|
+
(value.includes('.') ? 1 : 0) +
|
|
111
|
+
(value.includes('/') ? 1 : 0) +
|
|
112
|
+
(/[a-z][A-Z]/.test(value) ? 1 : 0);
|
|
113
|
+
if (separators > 1)
|
|
114
|
+
return 'mixed';
|
|
115
|
+
return 'unknown';
|
|
116
|
+
}
|
|
117
|
+
export function stringIsCamelCase(text) {
|
|
118
|
+
return stringDetectCase(text) === 'camel';
|
|
119
|
+
}
|
|
120
|
+
export function stringIsPascalCase(text) {
|
|
121
|
+
return stringDetectCase(text) === 'pascal';
|
|
122
|
+
}
|
|
123
|
+
export function stringIsSnakeCase(text) {
|
|
124
|
+
return stringDetectCase(text) === 'snake';
|
|
125
|
+
}
|
|
126
|
+
export function stringIsKebabCase(text) {
|
|
127
|
+
return stringDetectCase(text) === 'kebab';
|
|
128
|
+
}
|
|
129
|
+
export function stringIsConstantCase(text) {
|
|
130
|
+
return stringDetectCase(text) === 'constant';
|
|
131
|
+
}
|
|
132
|
+
export function stringIsDotCase(text) {
|
|
133
|
+
return stringDetectCase(text) === 'dot';
|
|
134
|
+
}
|
|
135
|
+
export function stringIsPathCase(text) {
|
|
136
|
+
return stringDetectCase(text) === 'path';
|
|
137
|
+
}
|
|
138
|
+
export function stringIsTitleCase(text) {
|
|
139
|
+
return stringDetectCase(text) === 'title';
|
|
140
|
+
}
|
|
141
|
+
// Formatting helpers
|
|
142
|
+
export function stringCapitalizeFirst(text) {
|
|
143
|
+
return text ? text.charAt(0).toUpperCase() + text.slice(1) : text;
|
|
144
|
+
}
|
|
145
|
+
export function stringFirstLetterLower(text) {
|
|
146
|
+
return text ? text.charAt(0).toLowerCase() + text.slice(1) : text;
|
|
147
|
+
}
|
|
148
|
+
export function stringFirstLetterUpper(text) {
|
|
149
|
+
return text ? text.charAt(0).toUpperCase() + text.slice(1) : text;
|
|
150
|
+
}
|
|
151
|
+
export function stringFormat(text, args) {
|
|
152
|
+
return Object.entries(args).reduce((acc, [key, value]) => {
|
|
153
|
+
return acc.replace(new RegExp(key, 'g'), String(value));
|
|
154
|
+
}, text);
|
|
155
|
+
}
|
|
156
|
+
export function stringToClass(text) {
|
|
157
|
+
return stringCapitalizeFirst(stringToCamelCase(text));
|
|
158
|
+
}
|
|
159
|
+
export function stringToCamel(text) {
|
|
160
|
+
return stringToCamelCase(text);
|
|
161
|
+
}
|
|
162
|
+
export function stringToKebab(text) {
|
|
163
|
+
return stringToKebabCase(text);
|
|
164
|
+
}
|
|
165
|
+
export function stringToSnake(text) {
|
|
166
|
+
return (text
|
|
167
|
+
// Add underscore between lower and upper letters
|
|
168
|
+
.replace(/(\p{Lu}+)(\p{Lu}\p{Ll})/gu, '$1_$2')
|
|
169
|
+
// Add underscore between lower and number
|
|
170
|
+
.replace(/([\p{Ll}0-9])(\p{Lu})/gu, '$1_$2')
|
|
171
|
+
// Remove dash before numbers
|
|
172
|
+
.replace(/-(\d)/g, '$1')
|
|
173
|
+
.toLowerCase());
|
|
174
|
+
}
|
|
175
|
+
export function stringToScreamingSnake(text) {
|
|
176
|
+
return stringToKebab(text).replace(/-/g, '_').toUpperCase();
|
|
177
|
+
}
|
|
178
|
+
export function stringPathToTagName(text) {
|
|
179
|
+
return text.split('/').join('-').toLowerCase();
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Build a stable identifier from a string.
|
|
183
|
+
*
|
|
184
|
+
* Rules (kept in sync with PHP `DomHelper::buildStringIdentifier()`):
|
|
185
|
+
* - Replace any non [a-zA-Z0-9-] character with '-'
|
|
186
|
+
* - Convert to kebab-case
|
|
187
|
+
* - Collapse multiple '-' into one and trim '-' at both ends
|
|
188
|
+
* - Keep legacy behavior by removing dashes before numbers (e.g. "vue-2" -> "vue2")
|
|
189
|
+
*/
|
|
190
|
+
export function stringBuildIdentifier(input) {
|
|
191
|
+
const kebab = stringToKebab(input.replace(/[^a-zA-Z0-9-]/g, '-'));
|
|
192
|
+
return kebab
|
|
193
|
+
.replace(/-(\d)/g, '$1')
|
|
194
|
+
.replace(/-+/g, '-')
|
|
195
|
+
.replace(/^[-]+|[-]+$/g, '');
|
|
196
|
+
}
|
|
197
|
+
// Text utilities
|
|
198
|
+
export function stringAppendMissingLines(lines, content) {
|
|
199
|
+
let normalized = stringRemoveTrailingEmptyLines(content);
|
|
200
|
+
const currentLines = normalized.split('\n');
|
|
201
|
+
const seen = new Set(currentLines);
|
|
202
|
+
const linesToAdd = [];
|
|
203
|
+
for (const line of lines) {
|
|
204
|
+
if (!seen.has(line)) {
|
|
205
|
+
linesToAdd.push(line);
|
|
206
|
+
seen.add(line);
|
|
207
|
+
}
|
|
188
208
|
}
|
|
189
|
-
|
|
190
|
-
|
|
209
|
+
if (linesToAdd.length) {
|
|
210
|
+
normalized = stringEnsureEndWithNewLine(normalized);
|
|
211
|
+
normalized += linesToAdd.join('\n') + '\n';
|
|
212
|
+
}
|
|
213
|
+
return normalized;
|
|
214
|
+
}
|
|
215
|
+
export function stringEnsureEndWithNewLine(text) {
|
|
216
|
+
return text.endsWith('\n') ? text : `${text}\n`;
|
|
217
|
+
}
|
|
218
|
+
export function stringRemoveTrailingEmptyLines(content) {
|
|
219
|
+
if (!content)
|
|
220
|
+
return content;
|
|
221
|
+
const lines = content.split('\n');
|
|
222
|
+
while (lines.length && !lines[lines.length - 1].trim()) {
|
|
223
|
+
lines.pop();
|
|
224
|
+
}
|
|
225
|
+
let result = lines.join('\n');
|
|
226
|
+
if (result && content.endsWith('\n')) {
|
|
227
|
+
result += '\n';
|
|
228
|
+
}
|
|
229
|
+
return result;
|
|
230
|
+
}
|
|
231
|
+
export function stringGenerateLoremIpsum(length = 100) {
|
|
232
|
+
if (length <= 0)
|
|
233
|
+
return '';
|
|
234
|
+
const text = `${LOREM_BASE} `.repeat(Math.floor(length / (LOREM_BASE.length + 1)) + 1);
|
|
235
|
+
let cut = text.slice(0, length).trimEnd();
|
|
236
|
+
if (cut.length === length && length < text.length && !/[ .,!?;:]$/.test(cut)) {
|
|
237
|
+
const lastSpace = cut.lastIndexOf(' ');
|
|
238
|
+
if (lastSpace > 0) {
|
|
239
|
+
cut = cut.slice(0, lastSpace);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return cut.trim();
|
|
191
243
|
}
|
|
192
|
-
function stringRemovePrefix(text, prefix) {
|
|
193
|
-
|
|
244
|
+
export function stringRemovePrefix(text, prefix) {
|
|
245
|
+
return text.replace(new RegExp(`^${escapeRegExp(prefix)}`), '');
|
|
194
246
|
}
|
|
195
|
-
function stringRenderBoolean(boolean) {
|
|
196
|
-
|
|
247
|
+
export function stringRenderBoolean(boolean) {
|
|
248
|
+
return boolean ? 'True' : 'False';
|
|
197
249
|
}
|
|
198
|
-
function stringReplaceParams(text, params) {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
250
|
+
export function stringReplaceParams(text, params) {
|
|
251
|
+
return Object.entries(params).reduce((acc, [key, value]) => {
|
|
252
|
+
return acc.replace(new RegExp(`%${escapeRegExp(key)}%`, 'g'), String(value));
|
|
253
|
+
}, text);
|
|
202
254
|
}
|
|
203
|
-
function stringTruncate(text, limit) {
|
|
204
|
-
|
|
205
|
-
|
|
255
|
+
export function stringTruncate(text, limit) {
|
|
256
|
+
if (limit <= 0)
|
|
257
|
+
return '';
|
|
258
|
+
return text.length > limit ? `${text.slice(0, Math.max(0, limit - 3))}...` : text;
|
|
206
259
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
export { String_default as default, stringAppendMissingLines, stringBuildIdentifier, stringCapitalizeFirst, stringConvertCase, stringConvertCaseMap, stringDetectCase, stringEnsureEndWithNewLine, stringFirstLetterLower, stringFirstLetterUpper, stringFormat, stringGenerateLoremIpsum, stringIsCamelCase, stringIsConstantCase, stringIsDotCase, stringIsKebabCase, stringIsPascalCase, stringIsPathCase, stringIsSnakeCase, stringIsTitleCase, stringPathToTagName, stringRemovePrefix, stringRemoveTrailingEmptyLines, stringRenderBoolean, stringReplaceParams, stringToCamel, stringToCamelCase, stringToClass, stringToConstantCase, stringToDotCase, stringToKebab, stringToKebabCase, stringToPascalCase, stringToPathCase, stringToScreamingSnake, stringToSnake, stringToSnakeCase, stringToTitleCase, stringTruncate };
|
|
210
|
-
//# sourceMappingURL=String.js.map
|
|
260
|
+
export default stringToKebab;
|
|
211
261
|
//# sourceMappingURL=String.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Helper/String.ts"],"names":[],"mappings":"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","file":"String.js","sourcesContent":["const CAMEL_REGEX = /^[a-z][a-z0-9]*([A-Z][a-z0-9]*)+$/;\nconst PASCAL_REGEX = /^[A-Z][a-zA-Z0-9]*$/;\nconst CONSTANT_REGEX = /^[A-Z][A-Z0-9_]*$/;\nconst SNAKE_REGEX = /^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;\nconst KEBAB_REGEX = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;\nconst DOT_REGEX = /^[a-z][a-z0-9]*(\\.[a-z0-9]+)*$/;\nconst PATH_REGEX = /^[a-z][a-z0-9]*(\\/[a-z0-9]+)*$/;\nconst TITLE_REGEX = /^[A-Z][a-z]+(\\s[A-Z][a-z]+)*$/;\n\nconst LOREM_BASE =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' +\n 'Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' +\n 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ' +\n 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. ' +\n 'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';\n\ntype TranslationArgs = Record<string, unknown>;\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction normalizeWords(value?: string | null): string[] {\n if (!value) return [];\n const trimmed = value.trim();\n if (!trimmed) return [];\n\n let text = trimmed;\n\n // Replace any non-alphanumeric separators with spaces.\n text = text.replace(/[^A-Za-z0-9]+/g, ' ');\n // Split camelCase / PascalCase.\n text = text.replace(/([a-z0-9])([A-Z])/g, '$1 $2');\n // Split multiple caps like \"JSONParser\" -> \"JSON Parser\".\n text = text.replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2');\n\n return text.toLowerCase().split(/\\s+/).filter(Boolean);\n}\n\n// Casing conversions\nexport function stringToSnakeCase(value: string): string {\n return normalizeWords(value).join('_');\n}\n\nexport function stringToKebabCase(value: string): string {\n return normalizeWords(value).join('-');\n}\n\nexport function stringToDotCase(value: string): string {\n return normalizeWords(value).join('.');\n}\n\nexport function stringToPathCase(value: string): string {\n return normalizeWords(value).join('/');\n}\n\nexport function stringToCamelCase(value: string): string {\n const words = normalizeWords(value);\n if (!words.length) return '';\n return (\n words[0] +\n words\n .slice(1)\n .map((w) => stringCapitalizeFirst(w))\n .join('')\n );\n}\n\nexport function stringToPascalCase(value: string): string {\n return normalizeWords(value)\n .map((w) => stringCapitalizeFirst(w))\n .join('');\n}\n\nexport function stringToConstantCase(value: string): string {\n return normalizeWords(value).join('_').toUpperCase();\n}\n\nexport function stringToTitleCase(value: string): string {\n return normalizeWords(value)\n .map((w) => stringCapitalizeFirst(w))\n .join(' ');\n}\n\nexport function stringConvertCaseMap(): Record<string, (text: string) => string> {\n return {\n snake: stringToSnakeCase,\n kebab: stringToKebabCase,\n camel: stringToCamelCase,\n pascal: stringToPascalCase,\n constant: stringToConstantCase,\n title: stringToTitleCase,\n dot: stringToDotCase,\n path: stringToPathCase,\n };\n}\n\nexport function stringConvertCase(\n text: string,\n toFormat: keyof ReturnType<typeof stringConvertCaseMap>\n): string {\n const converters = stringConvertCaseMap();\n const converter = converters[toFormat];\n if (!converter) {\n throw new Error(\n `Invalid format '${toFormat}'. Must be one of: ${Object.keys(converters).join(', ')}`\n );\n }\n return converter(text);\n}\n\nexport function stringDetectCase(text: string): string {\n if (!text || !text.trim()) return 'unknown';\n const value = text.trim();\n\n if (CONSTANT_REGEX.test(value)) return 'constant';\n if (SNAKE_REGEX.test(value)) return 'snake';\n if (KEBAB_REGEX.test(value)) return 'kebab';\n if (DOT_REGEX.test(value)) return 'dot';\n if (PATH_REGEX.test(value)) return 'path';\n if (CAMEL_REGEX.test(value)) return 'camel';\n if (PASCAL_REGEX.test(value)) return 'pascal';\n if (TITLE_REGEX.test(value)) return 'title';\n\n const separators =\n (value.includes('_') ? 1 : 0) +\n (value.includes('-') ? 1 : 0) +\n (value.includes('.') ? 1 : 0) +\n (value.includes('/') ? 1 : 0) +\n (/[a-z][A-Z]/.test(value) ? 1 : 0);\n\n if (separators > 1) return 'mixed';\n return 'unknown';\n}\n\nexport function stringIsCamelCase(text: string): boolean {\n return stringDetectCase(text) === 'camel';\n}\n\nexport function stringIsPascalCase(text: string): boolean {\n return stringDetectCase(text) === 'pascal';\n}\n\nexport function stringIsSnakeCase(text: string): boolean {\n return stringDetectCase(text) === 'snake';\n}\n\nexport function stringIsKebabCase(text: string): boolean {\n return stringDetectCase(text) === 'kebab';\n}\n\nexport function stringIsConstantCase(text: string): boolean {\n return stringDetectCase(text) === 'constant';\n}\n\nexport function stringIsDotCase(text: string): boolean {\n return stringDetectCase(text) === 'dot';\n}\n\nexport function stringIsPathCase(text: string): boolean {\n return stringDetectCase(text) === 'path';\n}\n\nexport function stringIsTitleCase(text: string): boolean {\n return stringDetectCase(text) === 'title';\n}\n\n// Formatting helpers\nexport function stringCapitalizeFirst(text: string): string {\n return text ? text.charAt(0).toUpperCase() + text.slice(1) : text;\n}\n\nexport function stringFirstLetterLower(text: string): string {\n return text ? text.charAt(0).toLowerCase() + text.slice(1) : text;\n}\n\nexport function stringFirstLetterUpper(text: string): string {\n return text ? text.charAt(0).toUpperCase() + text.slice(1) : text;\n}\n\nexport function stringFormat(text: string, args: TranslationArgs): string {\n return Object.entries(args).reduce((acc, [key, value]) => {\n return acc.replace(new RegExp(key, 'g'), String(value));\n }, text);\n}\n\nexport function stringToClass(text: string): string {\n return stringCapitalizeFirst(stringToCamelCase(text));\n}\n\nexport function stringToCamel(text: string): string {\n return stringToCamelCase(text);\n}\n\nexport function stringToKebab(text: string): string {\n return stringToKebabCase(text);\n}\n\nexport function stringToSnake(text: string): string {\n return (\n text\n // Add underscore between lower and upper letters\n .replace(/(\\p{Lu}+)(\\p{Lu}\\p{Ll})/gu, '$1_$2')\n // Add underscore between lower and number\n .replace(/([\\p{Ll}0-9])(\\p{Lu})/gu, '$1_$2')\n // Remove dash before numbers\n .replace(/-(\\d)/g, '$1')\n .toLowerCase()\n );\n}\n\nexport function stringToScreamingSnake(text: string): string {\n return stringToKebab(text).replace(/-/g, '_').toUpperCase();\n}\n\nexport function stringPathToTagName(text: string): string {\n return text.split('/').join('-').toLowerCase();\n}\n\n/**\n * Build a stable identifier from a string.\n *\n * Rules (kept in sync with PHP `DomHelper::buildStringIdentifier()`):\n * - Replace any non [a-zA-Z0-9-] character with '-'\n * - Convert to kebab-case\n * - Collapse multiple '-' into one and trim '-' at both ends\n * - Keep legacy behavior by removing dashes before numbers (e.g. \"vue-2\" -> \"vue2\")\n */\nexport function stringBuildIdentifier(input: string): string {\n const kebab = stringToKebab(input.replace(/[^a-zA-Z0-9-]/g, '-'));\n\n return kebab\n .replace(/-(\\d)/g, '$1')\n .replace(/-+/g, '-')\n .replace(/^[-]+|[-]+$/g, '');\n}\n\n// Text utilities\nexport function stringAppendMissingLines(lines: string[], content: string): string {\n let normalized = stringRemoveTrailingEmptyLines(content);\n const currentLines = normalized.split('\\n');\n\n const seen = new Set(currentLines);\n const linesToAdd: string[] = [];\n\n for (const line of lines) {\n if (!seen.has(line)) {\n linesToAdd.push(line);\n seen.add(line);\n }\n }\n\n if (linesToAdd.length) {\n normalized = stringEnsureEndWithNewLine(normalized);\n normalized += linesToAdd.join('\\n') + '\\n';\n }\n\n return normalized;\n}\n\nexport function stringEnsureEndWithNewLine(text: string): string {\n return text.endsWith('\\n') ? text : `${text}\\n`;\n}\n\nexport function stringRemoveTrailingEmptyLines(content: string): string {\n if (!content) return content;\n\n const lines = content.split('\\n');\n while (lines.length && !lines[lines.length - 1].trim()) {\n lines.pop();\n }\n\n let result = lines.join('\\n');\n if (result && content.endsWith('\\n')) {\n result += '\\n';\n }\n\n return result;\n}\n\nexport function stringGenerateLoremIpsum(length = 100): string {\n if (length <= 0) return '';\n\n const text = `${LOREM_BASE} `.repeat(Math.floor(length / (LOREM_BASE.length + 1)) + 1);\n let cut = text.slice(0, length).trimEnd();\n\n if (cut.length === length && length < text.length && !/[ .,!?;:]$/.test(cut)) {\n const lastSpace = cut.lastIndexOf(' ');\n if (lastSpace > 0) {\n cut = cut.slice(0, lastSpace);\n }\n }\n\n return cut.trim();\n}\n\nexport function stringRemovePrefix(text: string, prefix: string): string {\n return text.replace(new RegExp(`^${escapeRegExp(prefix)}`), '');\n}\n\nexport function stringRenderBoolean(boolean: boolean): string {\n return boolean ? 'True' : 'False';\n}\n\nexport function stringReplaceParams(text: string, params: Record<string, unknown>): string {\n return Object.entries(params).reduce((acc, [key, value]) => {\n return acc.replace(new RegExp(`%${escapeRegExp(key)}%`, 'g'), String(value));\n }, text);\n}\n\nexport function stringTruncate(text: string, limit: number): string {\n if (limit <= 0) return '';\n return text.length > limit ? `${text.slice(0, Math.max(0, limit - 3))}...` : text;\n}\n\nexport default stringToKebab;\n"]}
|
|
1
|
+
{"version":3,"file":"String.js","sourceRoot":"","sources":["../../src/Helper/String.ts"],"names":[],"mappings":"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"}
|
package/dist/Helper/Time.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
1
|
+
export async function timeSleep(ms = 0) {
|
|
2
|
+
await new Promise((resolve) => {
|
|
3
|
+
setTimeout(resolve, ms);
|
|
4
|
+
});
|
|
6
5
|
}
|
|
7
|
-
|
|
8
|
-
export { timeSleep };
|
|
9
|
-
//# sourceMappingURL=Time.js.map
|
|
10
6
|
//# sourceMappingURL=Time.js.map
|
package/dist/Helper/Time.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Helper/Time.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Time.js","sourceRoot":"","sources":["../../src/Helper/Time.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAE,GAAG,CAAC;IACpC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/Helper/Url.js
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
return url.pathname + url.search + url.hash;
|
|
1
|
+
export function urlAppendQueryString(path, params) {
|
|
2
|
+
const url = new URL(path, 'http://dummy');
|
|
3
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
4
|
+
if (value !== undefined && value !== null) {
|
|
5
|
+
url.searchParams.append(key, String(value));
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
return url.pathname + url.search + url.hash;
|
|
10
9
|
}
|
|
11
|
-
function urlParse(url) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
export function urlParse(url) {
|
|
11
|
+
if (!/^https?:\/\//i.test(url)) {
|
|
12
|
+
const normalized = url.startsWith('/') ? url : `/${url}`;
|
|
13
|
+
return new URL(`${window.location.origin}${normalized}`);
|
|
14
|
+
}
|
|
15
|
+
return new URL(url);
|
|
17
16
|
}
|
|
18
|
-
|
|
19
|
-
export { urlAppendQueryString, urlParse };
|
|
20
|
-
//# sourceMappingURL=Url.js.map
|
|
21
17
|
//# sourceMappingURL=Url.js.map
|
package/dist/Helper/Url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Helper/Url.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Url.js","sourceRoot":"","sources":["../../src/Helper/Url.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,MAAoE;IAEpE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAE1C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACzD,OAAO,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC"}
|
package/dist/Helper/Variables.js
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
PLURAL_PAGE: "pages"
|
|
1
|
+
export const VARIABLES = {
|
|
2
|
+
CLOSED: 'closed',
|
|
3
|
+
COMPONENT: 'component',
|
|
4
|
+
PAGE: 'page',
|
|
5
|
+
ID: 'id',
|
|
6
|
+
OPENED: 'opened',
|
|
7
|
+
PLURAL_COMPONENT: 'components',
|
|
8
|
+
PLURAL_PAGE: 'pages',
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export { VARIABLES, Variables_default as default };
|
|
14
|
-
//# sourceMappingURL=Variables.js.map
|
|
10
|
+
export default VARIABLES;
|
|
15
11
|
//# sourceMappingURL=Variables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Helper/Variables.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Variables.js","sourceRoot":"","sources":["../../src/Helper/Variables.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,YAAY;IAC9B,WAAW,EAAE,OAAO;CACZ,CAAC;AAIX,eAAe,SAAS,CAAC"}
|