typed-locales 1.0.59 → 1.0.61
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/adapters/react.d.ts.map +1 -1
- package/dist/adapters/react.js +6 -3
- package/dist/formatters.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/eslint.config.js +28 -7
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/adapters/react.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/adapters/react.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAEhF,OAAO,EACN,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,OAAO,EAEZ,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;CACnC;AAMD,KAAK,gBAAgB,GAAG;KACtB,MAAM,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM;CAC5B,GAAG;IACH,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,KAAK,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;AA0B5C,eAAO,MAAM,SAAS,GACrB,qBAAqB,MAAM,EAC3B,iBAAiB,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,EACpE,iBAAiB,eAAe,EAChC,eAAe,OAAO,EACtB,oBAAoB,iBAAiB,oBAEM;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,4CA0ExE,CAAC;AAEF,eAAO,MAAM,cAAc,8BAM1B,CAAC"}
|
package/dist/adapters/react.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useCallback, useContext, useState
|
|
2
|
+
import { createContext, useCallback, useContext, useState } from 'react';
|
|
3
3
|
import { getTranslate, } from '../index.js';
|
|
4
4
|
const TranslationContext = createContext(undefined);
|
|
5
5
|
const addExtraTranslations = (translation, extraTranslations, locale) => {
|
|
@@ -30,9 +30,12 @@ export const initReact = (defaultTranslations, allTranslations, extraFormatters,
|
|
|
30
30
|
translate: defaultTranslate,
|
|
31
31
|
});
|
|
32
32
|
const setLocale = useCallback(async (targetLocale) => {
|
|
33
|
+
if (state.locale === targetLocale) {
|
|
34
|
+
return targetLocale;
|
|
35
|
+
}
|
|
33
36
|
try {
|
|
34
37
|
const translationOrLoader = allTranslations[targetLocale];
|
|
35
|
-
const translationData = await translationOrLoader().then(t => t.default);
|
|
38
|
+
const translationData = (await translationOrLoader().then(t => t.default));
|
|
36
39
|
setState({
|
|
37
40
|
isLoading: false,
|
|
38
41
|
locale: targetLocale,
|
|
@@ -44,7 +47,7 @@ export const initReact = (defaultTranslations, allTranslations, extraFormatters,
|
|
|
44
47
|
setState(previous => ({ ...previous, isLoading: false }));
|
|
45
48
|
}
|
|
46
49
|
return targetLocale;
|
|
47
|
-
}, []);
|
|
50
|
+
}, [state, defaultTranslate]);
|
|
48
51
|
return (_jsx(TranslationContext.Provider, { value: {
|
|
49
52
|
isLoading: state.isLoading,
|
|
50
53
|
locale: state.locale,
|
package/dist/formatters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;AAExE,QAAA,MAAM,UAAU;;;;;;;;;CAoB8B,CAAC;AAE/C,eAAe,UAAU,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -83,9 +83,9 @@ export { initZustand } from './adapters/zustand.js';
|
|
|
83
83
|
export { type Formatter, default as defaultFormatters } from './formatters.js';
|
|
84
84
|
export { type ValidateTranslation, type EnsureValidTranslation, } from './validation.js';
|
|
85
85
|
/**
|
|
86
|
-
* @description Convert import.meta.glob to a record of locales and
|
|
86
|
+
* @description Convert import.meta.glob to a record of locales and the function to import the translations
|
|
87
87
|
* @param files - The files to convert
|
|
88
|
-
* @returns A record of locales and
|
|
88
|
+
* @returns A record of locales and the function to import the translations
|
|
89
89
|
* @example
|
|
90
90
|
* ```ts
|
|
91
91
|
* const translations = translationsFromImportMeta(import.meta.glob('../translations/*.ts'));
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable no-unused-vars */
|
|
2
1
|
import baseFormatters from './formatters.js';
|
|
3
2
|
const pluralSufixes = ['_none', '_one', '_other'];
|
|
4
3
|
// Runtime implementation remains the same
|
|
@@ -86,9 +85,9 @@ export { initReact, useTranslation } from './adapters/react.js';
|
|
|
86
85
|
export { initZustand } from './adapters/zustand.js';
|
|
87
86
|
export { default as defaultFormatters } from './formatters.js';
|
|
88
87
|
/**
|
|
89
|
-
* @description Convert import.meta.glob to a record of locales and
|
|
88
|
+
* @description Convert import.meta.glob to a record of locales and the function to import the translations
|
|
90
89
|
* @param files - The files to convert
|
|
91
|
-
* @returns A record of locales and
|
|
90
|
+
* @returns A record of locales and the function to import the translations
|
|
92
91
|
* @example
|
|
93
92
|
* ```ts
|
|
94
93
|
* const translations = translationsFromImportMeta(import.meta.glob('../translations/*.ts'));
|
package/eslint.config.js
CHANGED
|
@@ -2,29 +2,46 @@ import js from '@eslint/js';
|
|
|
2
2
|
import globals from 'globals';
|
|
3
3
|
import tseslint from 'typescript-eslint';
|
|
4
4
|
import markdown from '@eslint/markdown';
|
|
5
|
+
import react from 'eslint-plugin-react';
|
|
6
|
+
import reactHooks from 'eslint-plugin-react-hooks';
|
|
5
7
|
import { defineConfig } from 'eslint/config';
|
|
6
8
|
import prettier from 'eslint-config-prettier';
|
|
7
9
|
import prettierPlugin from 'eslint-plugin-prettier';
|
|
8
10
|
|
|
9
11
|
export default defineConfig([
|
|
12
|
+
// Base JS + React rules
|
|
10
13
|
{
|
|
11
|
-
files: ['**/*.{js,mjs,cjs,ts,mts,cts}'],
|
|
14
|
+
files: ['**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
|
|
12
15
|
plugins: {
|
|
13
16
|
js,
|
|
14
17
|
prettier: prettierPlugin,
|
|
18
|
+
react,
|
|
19
|
+
'react-hooks': reactHooks,
|
|
20
|
+
},
|
|
21
|
+
languageOptions: {
|
|
22
|
+
globals: {
|
|
23
|
+
...globals.browser,
|
|
24
|
+
...globals.node,
|
|
25
|
+
},
|
|
15
26
|
},
|
|
16
|
-
extends: ['js/recommended'],
|
|
17
27
|
rules: {
|
|
28
|
+
...react.configs.recommended.rules,
|
|
29
|
+
...reactHooks.configs.recommended.rules,
|
|
18
30
|
'prettier/prettier': 'error',
|
|
31
|
+
'react/react-in-jsx-scope': 'off',
|
|
32
|
+
'react/prop-types': 'off',
|
|
19
33
|
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
globals: globals.node,
|
|
34
|
+
settings: {
|
|
35
|
+
react: {
|
|
36
|
+
version: 'detect',
|
|
37
|
+
},
|
|
25
38
|
},
|
|
26
39
|
},
|
|
40
|
+
|
|
41
|
+
// TypeScript base config
|
|
27
42
|
tseslint.configs.base,
|
|
43
|
+
|
|
44
|
+
// Markdown linting
|
|
28
45
|
{
|
|
29
46
|
files: ['**/*.md'],
|
|
30
47
|
plugins: {
|
|
@@ -33,7 +50,11 @@ export default defineConfig([
|
|
|
33
50
|
language: 'markdown/gfm',
|
|
34
51
|
extends: ['markdown/recommended'],
|
|
35
52
|
},
|
|
53
|
+
|
|
54
|
+
// Prettier last
|
|
36
55
|
prettier,
|
|
56
|
+
|
|
57
|
+
// Ignore patterns
|
|
37
58
|
{
|
|
38
59
|
ignores: [
|
|
39
60
|
'node_modules/**',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typed-locales",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.61",
|
|
4
4
|
"description": "Type safe utilities for translating strings",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -23,12 +23,14 @@
|
|
|
23
23
|
"zustand": "^5.0.5"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
+
"eslint-plugin-react": "^7.37.5",
|
|
26
27
|
"@eslint/js": "^9.28.0",
|
|
27
28
|
"@eslint/markdown": "^6.4.0",
|
|
28
29
|
"@types/react": "^19.1.5",
|
|
29
30
|
"eslint": "^9.28.0",
|
|
30
31
|
"eslint-config-prettier": "^10.1.5",
|
|
31
32
|
"eslint-plugin-prettier": "^5.4.1",
|
|
33
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
32
34
|
"globals": "^16.2.0",
|
|
33
35
|
"prettier": "^3.5.3",
|
|
34
36
|
"typescript-eslint": "^8.33.0"
|