i18nya 0.2.5 → 0.2.6

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/dist/index.js CHANGED
@@ -4,9 +4,9 @@ export const init = async (config) => {
4
4
  let i18nya = {
5
5
  translations: {},
6
6
  makeT: (lang = rootLang) => (key, its = {}) => {
7
- let s;
8
- for (; !(s = i18nya.translations[lang]?.[key]); lang = fallbackLangs[lang] ?? rootLang)
9
- if (lang === rootLang)
7
+ let s, l = lang;
8
+ for (; !(s = i18nya.translations[l]?.[key]); l = fallbackLangs[l] ?? rootLang)
9
+ if (l === rootLang)
10
10
  return String(key);
11
11
  for (const [k, v] of Object.entries(its))
12
12
  s = s.replace(`{{${k}}}`, `${v}`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EACvB,MAAuB,EACvB,EAAE;IACF,MAAM,EACJ,OAAO,EACP,WAAW,EAAE,QAAQ,GAAG,IAAI,EAC5B,aAAa,GAAG,EAAE,EAClB,WAAW,GAAG,SAAS,GACxB,GAAG,MAAM,CAAC;IACX,IAAI,MAAM,GAAc;QACtB,YAAY,EAAE,EAAE;QAChB,KAAK,EACH,CAAC,IAAI,GAAG,QAAQ,EAAE,EAAE,CACpB,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;YAChB,IAAI,CAAqB,CAAC;YAC1B,OAEE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EACvC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,QAAQ;gBAEtC,IAAI,IAAI,KAAK,QAAQ;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACtC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC;QACX,CAAC;QACH,MAAM;KACP,CAAC;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAClE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC7D,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;AAExC,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EACvB,MAAuB,EACvB,EAAE;IACF,MAAM,EACJ,OAAO,EACP,WAAW,EAAE,QAAQ,GAAG,IAAI,EAC5B,aAAa,GAAG,EAAE,EAClB,WAAW,GAAG,SAAS,GACxB,GAAG,MAAM,CAAC;IACX,IAAI,MAAM,GAAc;QACtB,YAAY,EAAE,EAAE;QAChB,KAAK,EACH,CAAC,IAAI,GAAG,QAAQ,EAAE,EAAE,CACpB,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;YAChB,IAAI,CAAqB,EAAE,CAAC,GAAG,IAAI,CAAC;YACpC,OAEE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EACpC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,QAAQ;gBAEhC,IAAI,CAAC,KAAK,QAAQ;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACzC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACtC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC;QACX,CAAC;QACH,MAAM;KACP,CAAC;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAClE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC7D,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import i18nya from "./index";
2
+ async function makeI18n() {
3
+ return await i18nya({
4
+ defaultLang: "en",
5
+ langDir: "examples/hello/langs/",
6
+ });
7
+ }
8
+ describe("i18n", () => {
9
+ it("should not fallback subsequent existing keys", async () => {
10
+ const t = (await makeI18n()).makeT("ja");
11
+ expect(t("greet", { "name": "John" })).toBe("Hello, John!");
12
+ expect(t("hello")).toBe("こんにちは世界!");
13
+ });
14
+ });
15
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAE7B,KAAK,UAAU,QAAQ;IACnB,OAAO,MAAM,MAAM,CAAC;QAChB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,uBAAuB;KACnC,CAAC,CAAC;AACP,CAAC;AAED,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,CAAC,GAAG,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "i18nya",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "i18n as small as a cat's paw",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -30,8 +30,8 @@
30
30
  "devDependencies": {
31
31
  "@types/jest": "^30.0.0",
32
32
  "@types/node": "^24.10.1",
33
- "jest": "^30.2.0",
34
- "ts-jest": "^29.4.9",
33
+ "jest": "^30.4.2",
34
+ "ts-jest": "^27.0.3",
35
35
  "typescript": "^5.9.3"
36
36
  }
37
37
  }
@@ -0,0 +1,16 @@
1
+ import i18nya from "./index";
2
+
3
+ async function makeI18n() {
4
+ return await i18nya({
5
+ defaultLang: "en",
6
+ langDir: "examples/hello/langs/",
7
+ });
8
+ }
9
+
10
+ describe("i18n", () => {
11
+ it("should not fallback subsequent existing keys", async () => {
12
+ const t = (await makeI18n()).makeT("ja");
13
+ expect(t("greet", { "name": "John" })).toBe("Hello, John!");
14
+ expect(t("hello")).toBe("こんにちは世界!");
15
+ });
16
+ });
package/src/index.ts CHANGED
@@ -33,13 +33,13 @@ export const init = async <T extends string | number | symbol = string>(
33
33
  makeT:
34
34
  (lang = rootLang) =>
35
35
  (key, its = {}) => {
36
- let s: string | undefined;
36
+ let s: string | undefined, l = lang;
37
37
  for (
38
38
  ;
39
- !(s = i18nya.translations[lang]?.[key]);
40
- lang = fallbackLangs[lang] ?? rootLang
39
+ !(s = i18nya.translations[l]?.[key]);
40
+ l = fallbackLangs[l] ?? rootLang
41
41
  )
42
- if (lang === rootLang) return String(key);
42
+ if (l === rootLang) return String(key);
43
43
  for (const [k, v] of Object.entries(its))
44
44
  s = s.replace(`{{${k}}}`, `${v}`);
45
45
  return s;
package/tsconfig.json CHANGED
@@ -13,7 +13,7 @@
13
13
  // "types": [],
14
14
  // For nodejs:
15
15
  "lib": ["esnext"],
16
- "types": ["node"],
16
+ "types": ["node", "jest"],
17
17
  // and npm install -D @types/node
18
18
 
19
19
  // Other Outputs