@talosjs/utils 1.0.0
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/LICENSE +21 -0
- package/README.md +507 -0
- package/dist/shared/chunk-0cyfbpyn.js +12 -0
- package/dist/shared/chunk-0cyfbpyn.js.map +10 -0
- package/dist/shared/chunk-1bb2xts4.js +41 -0
- package/dist/shared/chunk-1bb2xts4.js.map +10 -0
- package/dist/shared/chunk-8vzcyn6r.js +6 -0
- package/dist/shared/chunk-8vzcyn6r.js.map +10 -0
- package/dist/shared/chunk-bxbywxsz.js +17 -0
- package/dist/shared/chunk-bxbywxsz.js.map +10 -0
- package/dist/shared/chunk-m001sqs5.js +15 -0
- package/dist/shared/chunk-m001sqs5.js.map +10 -0
- package/dist/src/capitalize.d.ts +2 -0
- package/dist/src/capitalize.js +8 -0
- package/dist/src/capitalize.js.map +9 -0
- package/dist/src/dataURLtoFile.d.ts +2 -0
- package/dist/src/dataURLtoFile.js +18 -0
- package/dist/src/dataURLtoFile.js.map +10 -0
- package/dist/src/formatRelativeNumber.d.ts +6 -0
- package/dist/src/formatRelativeNumber.js +18 -0
- package/dist/src/formatRelativeNumber.js.map +10 -0
- package/dist/src/millisecondsToHMS.d.ts +2 -0
- package/dist/src/millisecondsToHMS.js +19 -0
- package/dist/src/millisecondsToHMS.js.map +10 -0
- package/dist/src/parseEnvVars.d.ts +2 -0
- package/dist/src/parseEnvVars.js +25 -0
- package/dist/src/parseEnvVars.js.map +10 -0
- package/dist/src/parseString.d.ts +2 -0
- package/dist/src/parseString.js +9 -0
- package/dist/src/parseString.js.map +9 -0
- package/dist/src/random.d.ts +7 -0
- package/dist/src/random.js +21 -0
- package/dist/src/random.js.map +10 -0
- package/dist/src/secondsToHMS.d.ts +2 -0
- package/dist/src/secondsToHMS.js +19 -0
- package/dist/src/secondsToHMS.js.map +10 -0
- package/dist/src/secondsToMS.d.ts +2 -0
- package/dist/src/secondsToMS.js +11 -0
- package/dist/src/secondsToMS.js.map +10 -0
- package/dist/src/sleep.d.ts +2 -0
- package/dist/src/sleep.js +7 -0
- package/dist/src/sleep.js.map +10 -0
- package/dist/src/splitToWords.d.ts +2 -0
- package/dist/src/splitToWords.js +8 -0
- package/dist/src/splitToWords.js.map +9 -0
- package/dist/src/toCamelCase.d.ts +2 -0
- package/dist/src/toCamelCase.js +10 -0
- package/dist/src/toCamelCase.js.map +9 -0
- package/dist/src/toKebabCase.d.ts +2 -0
- package/dist/src/toKebabCase.js +14 -0
- package/dist/src/toKebabCase.js.map +10 -0
- package/dist/src/toPascalCase.d.ts +2 -0
- package/dist/src/toPascalCase.js +17 -0
- package/dist/src/toPascalCase.js.map +10 -0
- package/dist/src/toSnakeCase.d.ts +2 -0
- package/dist/src/toSnakeCase.js +15 -0
- package/dist/src/toSnakeCase.js.map +10 -0
- package/dist/src/trans.d.ts +21 -0
- package/dist/src/trans.js +55 -0
- package/dist/src/trans.js.map +10 -0
- package/dist/src/trim.d.ts +2 -0
- package/dist/src/trim.js +8 -0
- package/dist/src/trim.js.map +9 -0
- package/package.json +138 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// src/dataURLtoFile.ts
|
|
2
|
+
var dataURLtoFile = (dataUrl, filename) => {
|
|
3
|
+
const arr = dataUrl.split(",");
|
|
4
|
+
const mimeMatch = arr[0]?.match(/:(.*?);/);
|
|
5
|
+
const mime = mimeMatch?.[1] || "";
|
|
6
|
+
const bstr = atob(arr[1]);
|
|
7
|
+
let n = bstr.length;
|
|
8
|
+
const u8arr = new Uint8Array(n);
|
|
9
|
+
while (n--) {
|
|
10
|
+
u8arr[n] = bstr.charCodeAt(n);
|
|
11
|
+
}
|
|
12
|
+
return new File([u8arr], filename, { type: mime });
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
dataURLtoFile
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
//# debugId=59E7DDC2B59245A564756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/dataURLtoFile.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"export const dataURLtoFile = (dataUrl: string, filename: string): File => {\n const arr = dataUrl.split(\",\");\n const mimeMatch = arr[0]?.match(/:(.*?);/);\n const mime = mimeMatch?.[1] || \"\";\n const bstr = atob(arr[1] as string);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], filename, { type: mime });\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AAAO,IAAM,gBAAgB,CAAC,SAAiB,aAA2B;AAAA,EACxE,MAAM,MAAM,QAAQ,MAAM,GAAG;AAAA,EAC7B,MAAM,YAAY,IAAI,IAAI,MAAM,SAAS;AAAA,EACzC,MAAM,OAAO,YAAY,MAAM;AAAA,EAC/B,MAAM,OAAO,KAAK,IAAI,EAAY;AAAA,EAClC,IAAI,IAAI,KAAK;AAAA,EACb,MAAM,QAAQ,IAAI,WAAW,CAAC;AAAA,EAC9B,OAAO,KAAK;AAAA,IACV,MAAM,KAAK,KAAK,WAAW,CAAC;AAAA,EAC9B;AAAA,EACA,OAAO,IAAI,KAAK,CAAC,KAAK,GAAG,UAAU,EAAE,MAAM,KAAK,CAAC;AAAA;",
|
|
8
|
+
"debugId": "59E7DDC2B59245A564756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// src/formatRelativeNumber.ts
|
|
2
|
+
var defaultLang = "en-GB";
|
|
3
|
+
var isEnglishLocale = (lang) => /^en(?:-|$)/i.test(lang);
|
|
4
|
+
var normalizeEnglishCompactSuffix = (value) => value.replace(/tn$/, "T").replace(/bn$/, "B").replace(/k$/, "K").replace(/m$/, "M");
|
|
5
|
+
var formatRelativeNumber = (num, config) => {
|
|
6
|
+
const lang = config?.lang ?? defaultLang;
|
|
7
|
+
const value = new Intl.NumberFormat(lang, {
|
|
8
|
+
notation: "compact",
|
|
9
|
+
compactDisplay: "short",
|
|
10
|
+
maximumFractionDigits: config?.precision ?? 1
|
|
11
|
+
}).format(num);
|
|
12
|
+
return isEnglishLocale(lang) ? normalizeEnglishCompactSuffix(value) : value;
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
formatRelativeNumber
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
//# debugId=4484CEB01A34EA0264756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/formatRelativeNumber.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"type FormatRelativeNumberConfigType = {\n precision?: number;\n lang?: string;\n};\n\nconst defaultLang = \"en-GB\";\n\nconst isEnglishLocale = (lang: string): boolean => /^en(?:-|$)/i.test(lang);\n\nconst normalizeEnglishCompactSuffix = (value: string): string =>\n value.replace(/tn$/, \"T\").replace(/bn$/, \"B\").replace(/k$/, \"K\").replace(/m$/, \"M\");\n\nexport const formatRelativeNumber = (num: number, config?: FormatRelativeNumberConfigType): string => {\n const lang = config?.lang ?? defaultLang;\n const value = new Intl.NumberFormat(lang, {\n notation: \"compact\",\n compactDisplay: \"short\",\n maximumFractionDigits: config?.precision ?? 1,\n }).format(num);\n\n return isEnglishLocale(lang) ? normalizeEnglishCompactSuffix(value) : value;\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AAKA,IAAM,cAAc;AAEpB,IAAM,kBAAkB,CAAC,SAA0B,cAAc,KAAK,IAAI;AAE1E,IAAM,gCAAgC,CAAC,UACrC,MAAM,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AAE7E,IAAM,uBAAuB,CAAC,KAAa,WAAoD;AAAA,EACpG,MAAM,OAAO,QAAQ,QAAQ;AAAA,EAC7B,MAAM,QAAQ,IAAI,KAAK,aAAa,MAAM;AAAA,IACxC,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,uBAAuB,QAAQ,aAAa;AAAA,EAC9C,CAAC,EAAE,OAAO,GAAG;AAAA,EAEb,OAAO,gBAAgB,IAAI,IAAI,8BAA8B,KAAK,IAAI;AAAA;",
|
|
8
|
+
"debugId": "4484CEB01A34EA0264756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// src/millisecondsToHMS.ts
|
|
2
|
+
var millisecondsToHMS = (ms) => {
|
|
3
|
+
const totalSeconds = Math.floor(ms / 1000);
|
|
4
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
5
|
+
const minutes = Math.floor(totalSeconds % 3600 / 60);
|
|
6
|
+
const seconds = totalSeconds % 60;
|
|
7
|
+
if (hours > 0) {
|
|
8
|
+
return `${hours}:${minutes.toString().padStart(2, "0")}:${seconds.toString().padStart(2, "0")}`;
|
|
9
|
+
}
|
|
10
|
+
if (minutes > 0) {
|
|
11
|
+
return `${minutes}:${seconds.toString().padStart(2, "0")}`;
|
|
12
|
+
}
|
|
13
|
+
return seconds.toString();
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
millisecondsToHMS
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//# debugId=7E038BF615CD031064756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/millisecondsToHMS.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"export const millisecondsToHMS = (ms: number): string => {\n const totalSeconds = Math.floor(ms / 1000);\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n\n if (hours > 0) {\n return `${hours}:${minutes.toString().padStart(2, \"0\")}:${seconds.toString().padStart(2, \"0\")}`;\n }\n\n if (minutes > 0) {\n return `${minutes}:${seconds.toString().padStart(2, \"0\")}`;\n }\n\n return seconds.toString();\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AAAO,IAAM,oBAAoB,CAAC,OAAuB;AAAA,EACvD,MAAM,eAAe,KAAK,MAAM,KAAK,IAAI;AAAA,EACzC,MAAM,QAAQ,KAAK,MAAM,eAAe,IAAI;AAAA,EAC5C,MAAM,UAAU,KAAK,MAAO,eAAe,OAAQ,EAAE;AAAA,EACrD,MAAM,UAAU,eAAe;AAAA,EAE/B,IAAI,QAAQ,GAAG;AAAA,IACb,OAAO,GAAG,SAAS,QAAQ,SAAS,EAAE,SAAS,GAAG,GAAG,KAAK,QAAQ,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,EAC9F;AAAA,EAEA,IAAI,UAAU,GAAG;AAAA,IACf,OAAO,GAAG,WAAW,QAAQ,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,EACzD;AAAA,EAEA,OAAO,QAAQ,SAAS;AAAA;",
|
|
8
|
+
"debugId": "7E038BF615CD031064756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
toCamelCase
|
|
3
|
+
} from "../shared/chunk-bxbywxsz.js";
|
|
4
|
+
import"../shared/chunk-m001sqs5.js";
|
|
5
|
+
import"../shared/chunk-8vzcyn6r.js";
|
|
6
|
+
import {
|
|
7
|
+
parseString
|
|
8
|
+
} from "../shared/chunk-1bb2xts4.js";
|
|
9
|
+
import"../shared/chunk-0cyfbpyn.js";
|
|
10
|
+
|
|
11
|
+
// src/parseEnvVars.ts
|
|
12
|
+
var parseEnvVars = (envs) => {
|
|
13
|
+
const vars = {};
|
|
14
|
+
for (const key in envs) {
|
|
15
|
+
const k = toCamelCase(key);
|
|
16
|
+
const value = parseString(envs[key]);
|
|
17
|
+
vars[k] = value;
|
|
18
|
+
}
|
|
19
|
+
return vars;
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
parseEnvVars
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
//# debugId=11044E86879063CA64756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/parseEnvVars.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { parseString } from \"./parseString\";\nimport { toCamelCase } from \"./toCamelCase\";\n\nexport const parseEnvVars = <T = Record<string, string>>(envs: Record<string, string>): T => {\n const vars: Record<string, string> = {};\n\n for (const key in envs) {\n const k = toCamelCase(key);\n const value = parseString(envs[key] as string) as string;\n vars[k] = value;\n }\n\n return vars as T;\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;AAGO,IAAM,eAAe,CAA6B,SAAoC;AAAA,EAC3F,MAAM,OAA+B,CAAC;AAAA,EAEtC,WAAW,OAAO,MAAM;AAAA,IACtB,MAAM,IAAI,YAAY,GAAG;AAAA,IACzB,MAAM,QAAQ,YAAY,KAAK,IAAc;AAAA,IAC7C,KAAK,KAAK;AAAA,EACZ;AAAA,EAEA,OAAO;AAAA;",
|
|
8
|
+
"debugId": "11044E86879063CA64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// src/random.ts
|
|
2
|
+
import { customAlphabet } from "nanoid";
|
|
3
|
+
var random = {
|
|
4
|
+
id() {
|
|
5
|
+
return customAlphabet("1234567890abcdef", 20)();
|
|
6
|
+
},
|
|
7
|
+
nanoid(size) {
|
|
8
|
+
return customAlphabet("1234567890abcdef", size ?? 10)();
|
|
9
|
+
},
|
|
10
|
+
stringInt(size) {
|
|
11
|
+
return customAlphabet("1234567890", size ?? 10)();
|
|
12
|
+
},
|
|
13
|
+
nanoidFactory(size) {
|
|
14
|
+
return customAlphabet("1234567890abcdef", size ?? 10);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
random
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
//# debugId=B9F0ECE1FAE8D9B964756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/random.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { customAlphabet } from \"nanoid\";\n\nexport const random = {\n id(): string {\n return customAlphabet(\"1234567890abcdef\", 20)();\n },\n nanoid(size?: number): string {\n return customAlphabet(\"1234567890abcdef\", size ?? 10)();\n },\n stringInt(size?: number): string {\n return customAlphabet(\"1234567890\", size ?? 10)();\n },\n nanoidFactory(size?: number): (size?: number) => string {\n return customAlphabet(\"1234567890abcdef\", size ?? 10);\n },\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AAAA;AAEO,IAAM,SAAS;AAAA,EACpB,EAAE,GAAW;AAAA,IACX,OAAO,eAAe,oBAAoB,EAAE,EAAE;AAAA;AAAA,EAEhD,MAAM,CAAC,MAAuB;AAAA,IAC5B,OAAO,eAAe,oBAAoB,QAAQ,EAAE,EAAE;AAAA;AAAA,EAExD,SAAS,CAAC,MAAuB;AAAA,IAC/B,OAAO,eAAe,cAAc,QAAQ,EAAE,EAAE;AAAA;AAAA,EAElD,aAAa,CAAC,MAA0C;AAAA,IACtD,OAAO,eAAe,oBAAoB,QAAQ,EAAE;AAAA;AAExD;",
|
|
8
|
+
"debugId": "B9F0ECE1FAE8D9B964756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// src/secondsToHMS.ts
|
|
2
|
+
var secondsToHMS = (seconds) => {
|
|
3
|
+
const totalSeconds = Math.floor(seconds);
|
|
4
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
5
|
+
const minutes = Math.floor(totalSeconds % 3600 / 60);
|
|
6
|
+
const remainingSeconds = totalSeconds % 60;
|
|
7
|
+
if (hours > 0) {
|
|
8
|
+
return `${hours}:${minutes.toString().padStart(2, "0")}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
9
|
+
}
|
|
10
|
+
if (minutes > 0) {
|
|
11
|
+
return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
12
|
+
}
|
|
13
|
+
return remainingSeconds.toString();
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
secondsToHMS
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//# debugId=EEA206F6CAD1001264756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/secondsToHMS.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"export const secondsToHMS = (seconds: number): string => {\n const totalSeconds = Math.floor(seconds);\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const remainingSeconds = totalSeconds % 60;\n\n if (hours > 0) {\n return `${hours}:${minutes.toString().padStart(2, \"0\")}:${remainingSeconds.toString().padStart(2, \"0\")}`;\n }\n\n if (minutes > 0) {\n return `${minutes}:${remainingSeconds.toString().padStart(2, \"0\")}`;\n }\n\n return remainingSeconds.toString();\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AAAO,IAAM,eAAe,CAAC,YAA4B;AAAA,EACvD,MAAM,eAAe,KAAK,MAAM,OAAO;AAAA,EACvC,MAAM,QAAQ,KAAK,MAAM,eAAe,IAAI;AAAA,EAC5C,MAAM,UAAU,KAAK,MAAO,eAAe,OAAQ,EAAE;AAAA,EACrD,MAAM,mBAAmB,eAAe;AAAA,EAExC,IAAI,QAAQ,GAAG;AAAA,IACb,OAAO,GAAG,SAAS,QAAQ,SAAS,EAAE,SAAS,GAAG,GAAG,KAAK,iBAAiB,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,EACvG;AAAA,EAEA,IAAI,UAAU,GAAG;AAAA,IACf,OAAO,GAAG,WAAW,iBAAiB,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,EAClE;AAAA,EAEA,OAAO,iBAAiB,SAAS;AAAA;",
|
|
8
|
+
"debugId": "EEA206F6CAD1001264756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// src/secondsToMS.ts
|
|
2
|
+
var secondsToMS = (seconds) => {
|
|
3
|
+
const minutes = Math.floor(seconds / 60);
|
|
4
|
+
const remainingSeconds = seconds % 60;
|
|
5
|
+
return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
secondsToMS
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
//# debugId=F1DF7202034CDF9864756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/secondsToMS.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"export const secondsToMS = (seconds: number): string => {\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = seconds % 60;\n return `${minutes}:${remainingSeconds.toString().padStart(2, \"0\")}`;\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AAAO,IAAM,cAAc,CAAC,YAA4B;AAAA,EACtD,MAAM,UAAU,KAAK,MAAM,UAAU,EAAE;AAAA,EACvC,MAAM,mBAAmB,UAAU;AAAA,EACnC,OAAO,GAAG,WAAW,iBAAiB,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA;",
|
|
8
|
+
"debugId": "F1DF7202034CDF9864756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/sleep.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"export const sleep = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms));\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AAAO,IAAM,QAAQ,CAAC,OAA8B,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,EAAE,CAAC;",
|
|
8
|
+
"debugId": "F383B0B189A5418A64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
splitToWords
|
|
3
|
+
} from "../shared/chunk-m001sqs5.js";
|
|
4
|
+
|
|
5
|
+
// src/toKebabCase.ts
|
|
6
|
+
var toKebabCase = (input) => {
|
|
7
|
+
input = input.trim();
|
|
8
|
+
return splitToWords(input).join("-").toLowerCase();
|
|
9
|
+
};
|
|
10
|
+
export {
|
|
11
|
+
toKebabCase
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
//# debugId=9ACFDA45427BF37E64756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/toKebabCase.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { splitToWords } from \"./splitToWords\";\n\nexport const toKebabCase = (input: string): string => {\n input = input.trim();\n return splitToWords(input).join(\"-\").toLowerCase();\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;AAEO,IAAM,cAAc,CAAC,UAA0B;AAAA,EACpD,QAAQ,MAAM,KAAK;AAAA,EACnB,OAAO,aAAa,KAAK,EAAE,KAAK,GAAG,EAAE,YAAY;AAAA;",
|
|
8
|
+
"debugId": "9ACFDA45427BF37E64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
splitToWords
|
|
3
|
+
} from "../shared/chunk-m001sqs5.js";
|
|
4
|
+
import {
|
|
5
|
+
capitalize
|
|
6
|
+
} from "../shared/chunk-8vzcyn6r.js";
|
|
7
|
+
|
|
8
|
+
// src/toPascalCase.ts
|
|
9
|
+
var toPascalCase = (input) => {
|
|
10
|
+
input = input.trim();
|
|
11
|
+
return splitToWords(input).map(capitalize).join("");
|
|
12
|
+
};
|
|
13
|
+
export {
|
|
14
|
+
toPascalCase
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
//# debugId=AF47D9A76FEE136E64756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/toPascalCase.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { capitalize } from \"./capitalize\";\nimport { splitToWords } from \"./splitToWords\";\n\nexport const toPascalCase = (input: string): string => {\n input = input.trim();\n return splitToWords(input).map(capitalize).join(\"\");\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;AAGO,IAAM,eAAe,CAAC,UAA0B;AAAA,EACrD,QAAQ,MAAM,KAAK;AAAA,EACnB,OAAO,aAAa,KAAK,EAAE,IAAI,UAAU,EAAE,KAAK,EAAE;AAAA;",
|
|
8
|
+
"debugId": "AF47D9A76FEE136E64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
splitToWords
|
|
3
|
+
} from "../shared/chunk-m001sqs5.js";
|
|
4
|
+
|
|
5
|
+
// src/toSnakeCase.ts
|
|
6
|
+
var toSnakeCase = (input) => {
|
|
7
|
+
input = input.trim();
|
|
8
|
+
const words = splitToWords(input);
|
|
9
|
+
return words.map((word) => word.toLowerCase()).join("_");
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
toSnakeCase
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
//# debugId=6635F4B49F81805C64756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/toSnakeCase.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { splitToWords } from \"./splitToWords\";\n\nexport const toSnakeCase = (input: string): string => {\n input = input.trim();\n const words = splitToWords(input);\n return words.map((word) => word.toLowerCase()).join(\"_\");\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;AAEO,IAAM,cAAc,CAAC,UAA0B;AAAA,EACpD,QAAQ,MAAM,KAAK;AAAA,EACnB,MAAM,QAAQ,aAAa,KAAK;AAAA,EAChC,OAAO,MAAM,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,EAAE,KAAK,GAAG;AAAA;",
|
|
8
|
+
"debugId": "6635F4B49F81805C64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type TransParamsType = Record<string, boolean | number | bigint | string>;
|
|
2
|
+
type TransLeafType = Partial<Record<string, string>>;
|
|
3
|
+
type TransDictType = {
|
|
4
|
+
[key: string]: TransDictType | TransLeafType;
|
|
5
|
+
};
|
|
6
|
+
type TransConfigType = {
|
|
7
|
+
lang?: string | undefined;
|
|
8
|
+
fallbackLang?: string | undefined;
|
|
9
|
+
params?: TransParamsType | undefined;
|
|
10
|
+
count?: number | undefined;
|
|
11
|
+
};
|
|
12
|
+
type TransResultType = {
|
|
13
|
+
found: true;
|
|
14
|
+
value: string;
|
|
15
|
+
} | {
|
|
16
|
+
found: false;
|
|
17
|
+
reason: "key" | "locale";
|
|
18
|
+
};
|
|
19
|
+
declare const has: (dict: TransDictType, key: string) => boolean;
|
|
20
|
+
declare const trans: (dict: TransDictType, key: string, config?: TransConfigType) => TransResultType;
|
|
21
|
+
export { trans, has, TransResultType, TransParamsType, TransLeafType, TransDictType, TransConfigType };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// src/trans.ts
|
|
2
|
+
var DEFAULT_FALLBACK_LOCALE = "en";
|
|
3
|
+
var INTERPOLATION_PATTERN = /\{\{\s*(\w+)\s*\}\}/g;
|
|
4
|
+
var resolve = (dict, key) => {
|
|
5
|
+
let current = dict;
|
|
6
|
+
for (const segment of key.split(".")) {
|
|
7
|
+
if (current === null || typeof current !== "object") {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
current = current[segment];
|
|
11
|
+
}
|
|
12
|
+
if (current === null || typeof current !== "object") {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
return current;
|
|
16
|
+
};
|
|
17
|
+
var select = (dict, key, count) => {
|
|
18
|
+
if (count === undefined || count === 1) {
|
|
19
|
+
return resolve(dict, key);
|
|
20
|
+
}
|
|
21
|
+
if (count === 0) {
|
|
22
|
+
return resolve(dict, `${key}_zero`) ?? resolve(dict, `${key}_plural`) ?? resolve(dict, key);
|
|
23
|
+
}
|
|
24
|
+
return resolve(dict, `${key}_plural`) ?? resolve(dict, key);
|
|
25
|
+
};
|
|
26
|
+
var interpolate = (template, params, count) => {
|
|
27
|
+
const values = { ...params };
|
|
28
|
+
if (count !== undefined && values.count === undefined) {
|
|
29
|
+
values.count = count;
|
|
30
|
+
}
|
|
31
|
+
return template.replace(INTERPOLATION_PATTERN, (match, name) => {
|
|
32
|
+
const value = values[name];
|
|
33
|
+
return value === undefined ? match : String(value);
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
var has = (dict, key) => resolve(dict, key) !== undefined;
|
|
37
|
+
var trans = (dict, key, config = {}) => {
|
|
38
|
+
const fallbackLang = config.fallbackLang ?? DEFAULT_FALLBACK_LOCALE;
|
|
39
|
+
const lang = config.lang ?? fallbackLang;
|
|
40
|
+
const leaf = select(dict, key, config.count);
|
|
41
|
+
if (!leaf) {
|
|
42
|
+
return { found: false, reason: "key" };
|
|
43
|
+
}
|
|
44
|
+
const template = leaf[lang] ?? leaf[fallbackLang];
|
|
45
|
+
if (template === undefined) {
|
|
46
|
+
return { found: false, reason: "locale" };
|
|
47
|
+
}
|
|
48
|
+
return { found: true, value: interpolate(template, config.params, config.count) };
|
|
49
|
+
};
|
|
50
|
+
export {
|
|
51
|
+
trans,
|
|
52
|
+
has
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
//# debugId=06078B4D8E22A20864756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/trans.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"export type TransParamsType = Record<string, boolean | number | bigint | string>;\n\nexport type TransLeafType = Partial<Record<string, string>>;\n\nexport type TransDictType = {\n [key: string]: TransDictType | TransLeafType;\n};\n\nexport type TransConfigType = {\n lang?: string | undefined;\n fallbackLang?: string | undefined;\n params?: TransParamsType | undefined;\n count?: number | undefined;\n};\n\nexport type TransResultType = { found: true; value: string } | { found: false; reason: \"key\" | \"locale\" };\n\nconst DEFAULT_FALLBACK_LOCALE = \"en\";\nconst INTERPOLATION_PATTERN = /\\{\\{\\s*(\\w+)\\s*\\}\\}/g;\n\nconst resolve = (dict: TransDictType, key: string): TransLeafType | undefined => {\n let current: unknown = dict;\n\n for (const segment of key.split(\".\")) {\n if (current === null || typeof current !== \"object\") {\n return undefined;\n }\n\n current = (current as Record<string, unknown>)[segment];\n }\n\n if (current === null || typeof current !== \"object\") {\n return undefined;\n }\n\n return current as TransLeafType;\n};\n\nconst select = (dict: TransDictType, key: string, count?: number): TransLeafType | undefined => {\n if (count === undefined || count === 1) {\n return resolve(dict, key);\n }\n\n if (count === 0) {\n return resolve(dict, `${key}_zero`) ?? resolve(dict, `${key}_plural`) ?? resolve(dict, key);\n }\n\n return resolve(dict, `${key}_plural`) ?? resolve(dict, key);\n};\n\nconst interpolate = (template: string, params?: TransParamsType, count?: number): string => {\n const values: TransParamsType = { ...params };\n\n if (count !== undefined && values.count === undefined) {\n values.count = count;\n }\n\n return template.replace(INTERPOLATION_PATTERN, (match, name: string) => {\n const value = values[name];\n return value === undefined ? match : String(value);\n });\n};\n\nexport const has = (dict: TransDictType, key: string): boolean => resolve(dict, key) !== undefined;\n\nexport const trans = (dict: TransDictType, key: string, config: TransConfigType = {}): TransResultType => {\n const fallbackLang = config.fallbackLang ?? DEFAULT_FALLBACK_LOCALE;\n const lang = config.lang ?? fallbackLang;\n const leaf = select(dict, key, config.count);\n\n if (!leaf) {\n return { found: false, reason: \"key\" };\n }\n\n const template = leaf[lang] ?? leaf[fallbackLang];\n\n if (template === undefined) {\n return { found: false, reason: \"locale\" };\n }\n\n return { found: true, value: interpolate(template, config.params, config.count) };\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AAiBA,IAAM,0BAA0B;AAChC,IAAM,wBAAwB;AAE9B,IAAM,UAAU,CAAC,MAAqB,QAA2C;AAAA,EAC/E,IAAI,UAAmB;AAAA,EAEvB,WAAW,WAAW,IAAI,MAAM,GAAG,GAAG;AAAA,IACpC,IAAI,YAAY,QAAQ,OAAO,YAAY,UAAU;AAAA,MACnD;AAAA,IACF;AAAA,IAEA,UAAW,QAAoC;AAAA,EACjD;AAAA,EAEA,IAAI,YAAY,QAAQ,OAAO,YAAY,UAAU;AAAA,IACnD;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAGT,IAAM,SAAS,CAAC,MAAqB,KAAa,UAA8C;AAAA,EAC9F,IAAI,UAAU,aAAa,UAAU,GAAG;AAAA,IACtC,OAAO,QAAQ,MAAM,GAAG;AAAA,EAC1B;AAAA,EAEA,IAAI,UAAU,GAAG;AAAA,IACf,OAAO,QAAQ,MAAM,GAAG,UAAU,KAAK,QAAQ,MAAM,GAAG,YAAY,KAAK,QAAQ,MAAM,GAAG;AAAA,EAC5F;AAAA,EAEA,OAAO,QAAQ,MAAM,GAAG,YAAY,KAAK,QAAQ,MAAM,GAAG;AAAA;AAG5D,IAAM,cAAc,CAAC,UAAkB,QAA0B,UAA2B;AAAA,EAC1F,MAAM,SAA0B,KAAK,OAAO;AAAA,EAE5C,IAAI,UAAU,aAAa,OAAO,UAAU,WAAW;AAAA,IACrD,OAAO,QAAQ;AAAA,EACjB;AAAA,EAEA,OAAO,SAAS,QAAQ,uBAAuB,CAAC,OAAO,SAAiB;AAAA,IACtE,MAAM,QAAQ,OAAO;AAAA,IACrB,OAAO,UAAU,YAAY,QAAQ,OAAO,KAAK;AAAA,GAClD;AAAA;AAGI,IAAM,MAAM,CAAC,MAAqB,QAAyB,QAAQ,MAAM,GAAG,MAAM;AAElF,IAAM,QAAQ,CAAC,MAAqB,KAAa,SAA0B,CAAC,MAAuB;AAAA,EACxG,MAAM,eAAe,OAAO,gBAAgB;AAAA,EAC5C,MAAM,OAAO,OAAO,QAAQ;AAAA,EAC5B,MAAM,OAAO,OAAO,MAAM,KAAK,OAAO,KAAK;AAAA,EAE3C,IAAI,CAAC,MAAM;AAAA,IACT,OAAO,EAAE,OAAO,OAAO,QAAQ,MAAM;AAAA,EACvC;AAAA,EAEA,MAAM,WAAW,KAAK,SAAS,KAAK;AAAA,EAEpC,IAAI,aAAa,WAAW;AAAA,IAC1B,OAAO,EAAE,OAAO,OAAO,QAAQ,SAAS;AAAA,EAC1C;AAAA,EAEA,OAAO,EAAE,OAAO,MAAM,OAAO,YAAY,UAAU,OAAO,QAAQ,OAAO,KAAK,EAAE;AAAA;",
|
|
8
|
+
"debugId": "06078B4D8E22A20864756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
package/dist/src/trim.js
ADDED