@cudenix/cudenix 0.0.14 → 0.0.16
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.
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { App } from "../../app.js";
|
|
2
2
|
type DeepPaths<Type extends Record<PropertyKey, unknown>> = {
|
|
3
|
-
[Key in keyof Type]: Key extends string ? Type[Key] extends Record<PropertyKey, unknown> ?
|
|
3
|
+
[Key in keyof Type]: Key extends string ? Type[Key] extends Record<PropertyKey, unknown> ? `${Key}` | `${Key}.${DeepPaths<Type[Key]>}` : `${Key}` : never;
|
|
4
4
|
}[keyof Type];
|
|
5
|
-
type DeepValue<Type extends Record<PropertyKey, unknown>, Path extends string
|
|
5
|
+
type DeepValue<Type extends Record<PropertyKey, unknown>, Path extends string> = Path extends `${infer Key}.${infer Rest}` ? Key extends keyof Type ? Type[Key] extends Record<PropertyKey, unknown> ? DeepValue<Type[Key], Rest> : never : never : Path extends keyof Type ? Type[Path] : never;
|
|
6
6
|
type ExtractPlaceholders<String extends string> = String extends `${infer _Start}\${${infer Param}}${infer Rest}` ? Param | ExtractPlaceholders<Rest> : never;
|
|
7
|
-
interface TranslateOptions<Key extends string> {
|
|
8
|
-
language?: string;
|
|
9
|
-
repalce?: {
|
|
10
|
-
[_Key in ExtractPlaceholders<Key>]?: string;
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
7
|
interface Translation {
|
|
14
8
|
[key: string]: string | Translation | (string | Translation)[];
|
|
15
9
|
}
|
|
10
|
+
interface TranslateOptions<Translation> {
|
|
11
|
+
language?: string;
|
|
12
|
+
replace?: Translation extends string ? {
|
|
13
|
+
[Key in ExtractPlaceholders<Translation>]?: string;
|
|
14
|
+
} : undefined;
|
|
15
|
+
}
|
|
16
16
|
interface I18n {
|
|
17
17
|
path: string;
|
|
18
18
|
cookie?: string;
|
|
@@ -22,11 +22,6 @@ interface I18n {
|
|
|
22
22
|
translations: Translation;
|
|
23
23
|
}
|
|
24
24
|
type I18nAddonOptions = Pick<I18n, "cookie" | "header">;
|
|
25
|
-
declare function translate<const Path extends DeepPaths<Cudenix.i18n.Translations>>(...path: Path): DeepValue<Cudenix.i18n.Translations, Path>;
|
|
26
|
-
declare function translate<const Path extends DeepPaths<Cudenix.i18n.Translations>>(...args: [
|
|
27
|
-
...path: Path,
|
|
28
|
-
options: TranslateOptions<DeepValue<Cudenix.i18n.Translations, Path>>
|
|
29
|
-
]): DeepValue<Cudenix.i18n.Translations, Path>;
|
|
30
25
|
export declare const i18n: {
|
|
31
26
|
addon: (path: string, language: string, options?: I18nAddonOptions) => (this: App) => Promise<string>;
|
|
32
27
|
readonly language: string | undefined;
|
|
@@ -34,7 +29,8 @@ export declare const i18n: {
|
|
|
34
29
|
inputs: NonNullable<unknown>;
|
|
35
30
|
outputs: NonNullable<unknown>;
|
|
36
31
|
}>;
|
|
37
|
-
|
|
32
|
+
replace: <Translation extends string>(translation: Translation, replace: { [Key in ExtractPlaceholders<Translation>]?: string; }) => Translation;
|
|
33
|
+
translate: <const Path extends DeepPaths<Cudenix.i18n.Translations>>(path: Path, options?: TranslateOptions<DeepValue<Cudenix.i18n.Translations, Path>>) => DeepValue<Cudenix.i18n.Translations, Path>;
|
|
38
34
|
};
|
|
39
35
|
export {};
|
|
40
36
|
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/ecosystem/i18n/i18n.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/ecosystem/i18n/i18n.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAKjC,KAAK,SAAS,CAAC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI;KAC1D,GAAG,IAAI,MAAM,IAAI,GAAG,GAAG,SAAS,MAAM,GACpC,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAC7C,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAC3C,GAAG,GAAG,EAAE,GACT,KAAK;CACR,CAAC,MAAM,IAAI,CAAC,CAAC;AAEd,KAAK,SAAS,CACb,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EACzC,IAAI,SAAS,MAAM,IAChB,IAAI,SAAS,GAAG,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GAC1C,GAAG,SAAS,MAAM,IAAI,GACrB,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAC7C,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAC1B,KAAK,GACN,KAAK,GACN,IAAI,SAAS,MAAM,IAAI,GACtB,IAAI,CAAC,IAAI,CAAC,GACV,KAAK,CAAC;AAEV,KAAK,mBAAmB,CAAC,MAAM,SAAS,MAAM,IAC7C,MAAM,SAAS,GAAG,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GAC5D,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,GACjC,KAAK,CAAC;AAEV,UAAU,WAAW;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;CAC/D;AAED,UAAU,gBAAgB,CAAC,WAAW;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,SAAS,MAAM,GACjC;SACC,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM;KAClD,GACA,SAAS,CAAC;CACb;AAED,UAAU,IAAI;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,WAAW,CAAC;CAC1B;AAED,KAAK,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;AA+JxD,eAAO,MAAM,IAAI;kBAlII,MAAM,YAAY,MAAM,YAAY,gBAAgB,YAC3C,GAAG;;;;;;cAoEhB,WAAW,SAAS,MAAM,eAC7B,WAAW,WACf,GACP,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAClD,KACC,WAAW;sBAeW,IAAI,SAAS,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QACnE,IAAI,YACA,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,KACpE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;CAsD5C,CAAC"}
|
|
@@ -1,8 +1,32 @@
|
|
|
1
1
|
import { readdir } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
2
3
|
import { module as _module } from "../../module.js";
|
|
3
4
|
import { getRequestContext } from "../../storage.js";
|
|
4
5
|
import { Empty } from "../../utils/empty.js";
|
|
5
6
|
import { getCookies } from "../../utils/get-cookies.js";
|
|
7
|
+
const loadTranslations = async (directory) => {
|
|
8
|
+
const result = {};
|
|
9
|
+
const entries = await readdir(directory, {
|
|
10
|
+
withFileTypes: true,
|
|
11
|
+
});
|
|
12
|
+
for (const entry of entries) {
|
|
13
|
+
const fullPath = join(directory, entry.name);
|
|
14
|
+
if (entry.isDirectory()) {
|
|
15
|
+
result[entry.name] = await loadTranslations(fullPath);
|
|
16
|
+
}
|
|
17
|
+
else if (entry.isFile() && entry.name.endsWith(".json")) {
|
|
18
|
+
const data = await Bun.file(fullPath).json();
|
|
19
|
+
if (entry.name === "index.json") {
|
|
20
|
+
Object.assign(result, data);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const key = entry.name.slice(0, -5);
|
|
24
|
+
result[key] = data;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
};
|
|
6
30
|
const addon = (path, language, options) => {
|
|
7
31
|
return async function () {
|
|
8
32
|
const directories = await readdir(path, {
|
|
@@ -18,11 +42,12 @@ const addon = (path, language, options) => {
|
|
|
18
42
|
languages,
|
|
19
43
|
translations: new Empty(),
|
|
20
44
|
});
|
|
45
|
+
const i18n = this.memory.get("i18n");
|
|
21
46
|
for (let i = 0; i < languages.length; i++) {
|
|
22
|
-
|
|
23
|
-
|
|
47
|
+
const lang = languages[i];
|
|
48
|
+
i18n.translations[lang] = await loadTranslations(join(path, lang));
|
|
24
49
|
}
|
|
25
|
-
await Bun.write(
|
|
50
|
+
await Bun.write(join(path, "types.d.ts"), `namespace Cudenix.i18n { interface Translations ${JSON.stringify(i18n.translations[language])}; };`);
|
|
26
51
|
return "i18n";
|
|
27
52
|
};
|
|
28
53
|
};
|
|
@@ -42,46 +67,46 @@ const module = () => {
|
|
|
42
67
|
return next();
|
|
43
68
|
});
|
|
44
69
|
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
let
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
options = args.pop();
|
|
53
|
-
path = args;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
path = args;
|
|
70
|
+
const replace = (translation, replace) => {
|
|
71
|
+
const keys = Object.keys(replace);
|
|
72
|
+
let replaced = translation;
|
|
73
|
+
for (let i = 0; i < keys.length; i++) {
|
|
74
|
+
const key = keys[i];
|
|
75
|
+
// @ts-expect-error
|
|
76
|
+
replaced = replaced.replaceAll(`\${${key}}`, replace[key]);
|
|
57
77
|
}
|
|
78
|
+
return replaced;
|
|
79
|
+
};
|
|
80
|
+
const translate = (path, options) => {
|
|
58
81
|
const context = getRequestContext();
|
|
59
82
|
const translations = context?.memory.get("i18n")
|
|
60
83
|
?.translations[options?.language ??
|
|
61
84
|
(context?.store).i18n
|
|
62
85
|
.language];
|
|
63
86
|
if (!translations) {
|
|
64
|
-
return path
|
|
87
|
+
return path;
|
|
65
88
|
}
|
|
89
|
+
const split = path.split(".");
|
|
66
90
|
let translation = translations;
|
|
67
|
-
for (let i = 0; i <
|
|
68
|
-
translation = translation[
|
|
91
|
+
for (let i = 0; i < split.length; i++) {
|
|
92
|
+
translation = translation[split[i]];
|
|
69
93
|
}
|
|
70
|
-
if (options?.
|
|
71
|
-
const keys = Object.keys(options.
|
|
94
|
+
if (options?.replace) {
|
|
95
|
+
const keys = Object.keys(options.replace);
|
|
72
96
|
for (let i = 0; i < keys.length; i++) {
|
|
73
97
|
const key = keys[i];
|
|
74
|
-
translation = translation.replaceAll(`\${${key}}`, options.
|
|
98
|
+
translation = translation.replaceAll(`\${${key}}`, options.replace[key]);
|
|
75
99
|
}
|
|
76
100
|
}
|
|
77
101
|
return translation;
|
|
78
|
-
}
|
|
102
|
+
};
|
|
79
103
|
export const i18n = {
|
|
80
104
|
addon,
|
|
81
105
|
get language() {
|
|
82
106
|
return getRequestContext()?.store.i18n?.language;
|
|
83
107
|
},
|
|
84
108
|
module,
|
|
109
|
+
replace,
|
|
85
110
|
translate,
|
|
86
111
|
};
|
|
87
112
|
//# sourceMappingURL=i18n.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/ecosystem/i18n/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../src/ecosystem/i18n/i18n.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED