@entropic-bond/localize-react 1.6.0 → 1.6.2
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.
|
@@ -5,7 +5,8 @@ export interface LocaleEntries {
|
|
|
5
5
|
export interface LocalizedState {
|
|
6
6
|
locale: LocaleEntries;
|
|
7
7
|
}
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function createSafeLocalizerFor(locale: LocaleEntries | undefined, throwOnKeyNotFound?: boolean): (keyPath: string) => string;
|
|
9
|
+
export declare function safeLocalize(locale: LocaleEntries, keyPath: string): string;
|
|
9
10
|
export type StateWithLocale<S> = S & LocalizedState;
|
|
10
11
|
/**
|
|
11
12
|
* Derive React components from this class to provide locale capabilities.
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useLocale = exports.localize = exports.LocalizedComponent = exports.safeLocalize = void 0;
|
|
3
|
+
exports.useLocale = exports.localize = exports.LocalizedComponent = exports.safeLocalize = exports.createSafeLocalizerFor = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const locale_1 = require("./locale");
|
|
6
|
-
function
|
|
7
|
-
return
|
|
6
|
+
function createSafeLocalizerFor(locale, throwOnKeyNotFound = false) {
|
|
7
|
+
return (keyPath, throwOnNotFound = throwOnKeyNotFound) => {
|
|
8
|
+
if (!locale)
|
|
9
|
+
return keyPath;
|
|
10
|
+
const value = keyPath.split('.').reduce((acc, prop) => acc[prop], locale);
|
|
11
|
+
if (value === undefined && throwOnNotFound)
|
|
12
|
+
throw Error(`Translation for ${keyPath} not found`);
|
|
13
|
+
return value || keyPath;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
exports.createSafeLocalizerFor = createSafeLocalizerFor;
|
|
17
|
+
function safeLocalize(locale, keyPath) {
|
|
18
|
+
return createSafeLocalizerFor(locale)(keyPath);
|
|
8
19
|
}
|
|
9
20
|
exports.safeLocalize = safeLocalize;
|
|
10
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localized-component.js","sourceRoot":"","sources":["../src/localized-component.tsx"],"names":[],"mappings":";;;AAAA,iCAAsD;AACtD,qCAAiC;AAUjC,SAAgB,
|
|
1
|
+
{"version":3,"file":"localized-component.js","sourceRoot":"","sources":["../src/localized-component.tsx"],"names":[],"mappings":"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"}
|
|
@@ -101,7 +101,11 @@ describe('React Component Localizer', () => {
|
|
|
101
101
|
return {
|
|
102
102
|
"hi": "Hello",
|
|
103
103
|
"LocalizedWithClass": {
|
|
104
|
-
"house": "albergo"
|
|
104
|
+
"house": "albergo",
|
|
105
|
+
"car": {
|
|
106
|
+
"sedan": "Sedan",
|
|
107
|
+
"coupe": "Coupe"
|
|
108
|
+
}
|
|
105
109
|
},
|
|
106
110
|
"LocalizedWithDecorator": {
|
|
107
111
|
"house": "maison"
|
|
@@ -160,8 +164,22 @@ describe('React Component Localizer', () => {
|
|
|
160
164
|
}));
|
|
161
165
|
it('should get a safe translation', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
162
166
|
const locale = yield locale_1.Locale.instance.get('LocalizedWithClass');
|
|
167
|
+
const loc = (0, localized_component_1.createSafeLocalizerFor)(locale);
|
|
163
168
|
expect((0, localized_component_1.safeLocalize)(locale, 'house')).toBe('albergo');
|
|
169
|
+
expect(loc('house')).toBe('albergo');
|
|
170
|
+
expect((0, localized_component_1.safeLocalize)(locale, 'car.sedan')).toBe('Sedan');
|
|
171
|
+
expect(loc('car.sedan')).toBe('Sedan');
|
|
164
172
|
expect((0, localized_component_1.safeLocalize)(locale, 'notExistingKey')).toBe('notExistingKey');
|
|
173
|
+
expect(loc('notExistingKey')).toBe('notExistingKey');
|
|
174
|
+
}));
|
|
175
|
+
it('should throw error when trying to get a translation from a non existing locale', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
176
|
+
const locale = yield locale_1.Locale.instance.get('LocalizedWithClass');
|
|
177
|
+
const loc = (0, localized_component_1.createSafeLocalizerFor)(locale, true);
|
|
178
|
+
expect(() => loc('carSedan')).toThrow();
|
|
179
|
+
}));
|
|
180
|
+
it('should not throw when locale is undefined', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
181
|
+
const loc = (0, localized_component_1.createSafeLocalizerFor)(undefined);
|
|
182
|
+
expect(() => loc('house')).not.toThrow();
|
|
165
183
|
}));
|
|
166
184
|
});
|
|
167
185
|
//# sourceMappingURL=react-localizer.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-localizer.spec.js","sourceRoot":"","sources":["../src/react-localizer.spec.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwC;AACxC,kDAA+C;AAC/C,4DAAkC;AAClC,qCAAiC;AACjC,+
|
|
1
|
+
{"version":3,"file":"react-localizer.spec.js","sourceRoot":"","sources":["../src/react-localizer.spec.tsx"],"names":[],"mappings":"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"}
|