1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | function buildLocale(locale, definition) {
|
4 | return { locale: locale, definition: definition };
|
5 | }
|
6 | exports.buildLocale = buildLocale;
|
7 | function createStringBuilders(locale) {
|
8 | var MessageFormat = require('messageformat');
|
9 | var mf = new MessageFormat(locale);
|
10 | return {
|
11 | constant: function (str) {
|
12 | return function () { return str; };
|
13 | },
|
14 | callback: function (cb) {
|
15 | return cb;
|
16 | },
|
17 | messageFormat: function (formatString) {
|
18 | return mf.compile(formatString);
|
19 | },
|
20 | };
|
21 | }
|
22 | function format(definition, fallback, bundleOrKey, data) {
|
23 | if (process.env.NODE_ENV !== 'production' && !definition) {
|
24 | throw new TypeError('definition must be provided');
|
25 | }
|
26 | if (bundleOrKey && typeof bundleOrKey === 'object') {
|
27 | var targetKey = definition[bundleOrKey.key] || (fallback && fallback[bundleOrKey.key]);
|
28 | if (process.env.NODE_ENV !== 'production' && !targetKey) {
|
29 | throw new TypeError('provided bundle key does not exist in definition or the fallback');
|
30 | }
|
31 | return targetKey(bundleOrKey.data);
|
32 | }
|
33 | if (typeof bundleOrKey === 'string') {
|
34 | var targetKey = definition[bundleOrKey] || (fallback && fallback[bundleOrKey]);
|
35 | if (process.env.NODE_ENV !== 'production' && !targetKey) {
|
36 | throw new TypeError('provided key does not exist in definition or the fallback');
|
37 | }
|
38 | return targetKey(data);
|
39 | }
|
40 | return '';
|
41 | }
|
42 | function internationalize(main) {
|
43 | var alts = [];
|
44 | for (var _i = 1; _i < arguments.length; _i++) {
|
45 | alts[_i - 1] = arguments[_i];
|
46 | }
|
47 | var mainDefinition = main.definition(createStringBuilders(main.locale));
|
48 | var keys = {};
|
49 | for (var _a = 0, _b = Object.keys(mainDefinition); _a < _b.length; _a++) {
|
50 | var key = _b[_a];
|
51 | keys[key] = key;
|
52 | }
|
53 | function bundle(key, data) {
|
54 | return { key: key, data: data };
|
55 | }
|
56 | function buildFormatter(locale) {
|
57 | if (locale === main.locale) {
|
58 | return function (bundleOrKey, data) {
|
59 | return format(mainDefinition, undefined, bundleOrKey, data);
|
60 | };
|
61 | }
|
62 | var target = alts.find(function (alt) { return alt.locale === locale; });
|
63 | if (!target) {
|
64 | throw new Error("The provided locale " + locale + " does not exist in the list of languages.");
|
65 | }
|
66 | var targetDefinition = target.definition(createStringBuilders(locale));
|
67 | return function (bundleOrKey, data) {
|
68 | return format(targetDefinition, mainDefinition, bundleOrKey, data);
|
69 | };
|
70 | }
|
71 | return { keys: keys, bundle: bundle, buildFormatter: buildFormatter };
|
72 | }
|
73 | exports.internationalize = internationalize;
|
74 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBd0JBLHFCQUNFLE1BQWMsRUFDZCxVQUE2RDtJQUU3RCxNQUFNLENBQUMsRUFBRSxNQUFNLFFBQUEsRUFBRSxVQUFVLFlBQUEsRUFBRSxDQUFDO0FBQ2hDLENBQUM7QUFMRCxrQ0FLQztBQXFCRCw4QkFBOEIsTUFBYztJQUMxQyxJQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0MsSUFBTSxFQUFFLEdBQUcsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFckMsTUFBTSxDQUFDO1FBQ0wsUUFBUSxZQUFDLEdBQVc7WUFDbEIsTUFBTSxDQUFDLGNBQU0sT0FBQSxHQUFHLEVBQUgsQ0FBRyxDQUFDO1FBQ25CLENBQUM7UUFDRCxRQUFRLFlBQUMsRUFBMEI7WUFDakMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxhQUFhLFlBQUMsWUFBb0I7WUFDaEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsZ0JBQ0UsVUFBeUIsRUFDekIsUUFBbUMsRUFDbkMsV0FBNEIsRUFDNUIsSUFBVTtJQUVWLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFlBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxJQUFJLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJ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eHBvcnQgaW50ZXJmYWNlIEJ1bmRsZTxLIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLCBEID0gYW55PiB7XHJcbiAga2V5OiBLO1xyXG4gIGRhdGE/OiBEO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0J1aWxkZXI8RCA9IGFueT4ge1xyXG4gIChkYXRhPzogRCk6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdCdWlsZGVycyB7XHJcbiAgY29uc3RhbnQoc3RyOiBzdHJpbmcpOiBTdHJpbmdCdWlsZGVyPHVuZGVmaW5lZD47XHJcbiAgY2FsbGJhY2s8RD4oY2FsbGJhY2s6IChkYXRhPzogRCkgPT4gc3RyaW5nKTogU3RyaW5nQnVpbGRlcjxEPjtcclxuICBtZXNzYWdlRm9ybWF0PEQ+KGZvcm1hdFN0cmluZzogc3RyaW5nKTogU3RyaW5nQnVpbGRlcjxEPjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGVmaW5pdGlvbjxUPiA9IHtcclxuICBbUCBpbiBrZXlvZiBUXTogU3RyaW5nQnVpbGRlcjxUW1BdPjtcclxufTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxlPFQ+IHtcclxuICBsb2NhbGU6IHN0cmluZztcclxuICBkZWZpbml0aW9uOiAoYnVpbGRlcnM6IFN0cmluZ0J1aWxkZXJzKSA9PiBEZWZpbml0aW9uPFQ+O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRMb2NhbGU8VD4oXHJcbiAgbG9jYWxlOiBzdHJpbmcsXHJcbiAgZGVmaW5pdGlvbjogKHN0cmluZ0J1aWxkZXJzOiBTdHJpbmdCdWlsZGVycykgPT4gRGVmaW5pdGlvbjxUPixcclxuKTogTG9jYWxlPFQ+IHtcclxuICByZXR1cm4geyBsb2NhbGUsIGRlZmluaXRpb24gfTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgS2V5czxUPiA9IHtcclxuICBbUCBpbiBrZXlvZiBUXTogUDtcclxufTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxlcjxUPiB7XHJcbiAgPEsgZXh0ZW5kcyBrZXlvZiBUPihrZXk6IEssIGRhdGE/OiBUW0tdKTogQnVuZGxlPEssIFRbS10+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdHRlcjxUPiB7XHJcbiAgPEsgZXh0ZW5kcyBrZXlvZiBUPihrZXk6IEssIGRhdGE/OiBUW0tdKTogc3RyaW5nO1xyXG4gIDxLIGV4dGVuZHMga2V5b2YgVD4oYnVuZGxlOiBCdW5kbGU8SywgVFtLXT4pOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJuYXRpb25hbGl6YXRpb248VD4ge1xyXG4gIGtleXM6IEtleXM8VD47XHJcbiAgYnVuZGxlOiBCdW5kbGVyPFQ+O1xyXG4gIGJ1aWxkRm9ybWF0dGVyKGxvY2FsZTogc3RyaW5nKTogRm9ybWF0dGVyPFQ+O1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVTdHJpbmdCdWlsZGVycyhsb2NhbGU6IHN0cmluZyk6IFN0cmluZ0J1aWxkZXJzIHtcclxuICBjb25zdCBNZXNzYWdlRm9ybWF0ID0gcmVxdWlyZSgnbWVzc2FnZWZvcm1hdCcpO1xyXG4gIGNvbnN0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQobG9jYWxlKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNvbnN0YW50KHN0cjogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiAoKSA9PiBzdHI7XHJcbiAgICB9LFxyXG4gICAgY2FsbGJhY2soY2I6IChkYXRhPzogYW55KSA9PiBzdHJpbmcpIHtcclxuICAgICAgcmV0dXJuIGNiO1xyXG4gICAgfSxcclxuICAgIG1lc3NhZ2VGb3JtYXQoZm9ybWF0U3RyaW5nOiBzdHJpbmcpIHtcclxuICAgICAgcmV0dXJuIG1mLmNvbXBpbGUoZm9ybWF0U3RyaW5nKTtcclxuICAgIH0sXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZm9ybWF0PFQ+KFxyXG4gIGRlZmluaXRpb246IERlZmluaXRpb248VD4sXHJcbiAgZmFsbGJhY2s6IERlZmluaXRpb248VD4gfCB1bmRlZmluZWQsXHJcbiAgYnVuZGxlT3JLZXk6IEJ1bmRsZSB8IHN0cmluZyxcclxuICBkYXRhPzogYW55LFxyXG4pOiBzdHJpbmcge1xyXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICFkZWZpbml0aW9uKSB7XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkZWZpbml0aW9uIG11c3QgYmUgcHJvdmlkZWQnKTtcclxuICB9XHJcblxyXG4gIGlmIChidW5kbGVPcktleSAmJiB0eXBlb2YgYnVuZGxlT3JLZXkgPT09ICdvYmplY3QnKSB7XHJcbiAgICBjb25zdCB0YXJnZXRLZXkgPSBkZWZpbml0aW9uW2J1bmRsZU9yS2V5LmtleV0gfHwgKGZhbGxiYWNrICYmIGZhbGxiYWNrW2J1bmRsZU9yS2V5LmtleV0pO1xyXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXRhcmdldEtleSkge1xyXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwcm92aWRlZCBidW5kbGUga2V5IGRvZXMgbm90IGV4aXN0IGluIGRlZmluaXRpb24gb3IgdGhlIGZhbGxiYWNrJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGFyZ2V0S2V5KGJ1bmRsZU9yS2V5LmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiBidW5kbGVPcktleSA9PT0gJ3N0cmluZycpIHtcclxuICAgIGNvbnN0IHRhcmdldEtleSA9IGRlZmluaXRpb25bYnVuZGxlT3JLZXldIHx8IChmYWxsYmFjayAmJiBmYWxsYmFja1tidW5kbGVPcktleV0pO1xyXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXRhcmdldEtleSkge1xyXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwcm92aWRlZCBrZXkgZG9lcyBub3QgZXhpc3QgaW4gZGVmaW5pdGlvbiBvciB0aGUgZmFsbGJhY2snKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0YXJnZXRLZXkoZGF0YSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gJyc7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbnRlcm5hdGlvbmFsaXplPFQ+KFxyXG4gIG1haW46IExvY2FsZTxUPixcclxuICAuLi5hbHRzOiBMb2NhbGU8UGFydGlhbDxUPj5bXSxcclxuKTogSW50ZXJuYXRpb25hbGl6YXRpb248VD4ge1xyXG4gIGNvbnN0IG1haW5EZWZpbml0aW9uID0gbWFpbi5kZWZpbml0aW9uKGNyZWF0ZVN0cmluZ0J1aWxkZXJzKG1haW4ubG9jYWxlKSk7XHJcblxyXG4gIGNvbnN0IGtleXMgPSA8S2V5czxUPj57fTtcclxuXHJcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobWFpbkRlZmluaXRpb24pKSB7XHJcbiAgICBrZXlzW2tleV0gPSBrZXk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBidW5kbGU8SyBleHRlbmRzIGtleW9mIFQ+KGtleTogSywgZGF0YT86IFRbS10pIHtcclxuICAgIHJldHVybiB7IGtleSwgZGF0YSB9O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYnVpbGRGb3JtYXR0ZXIobG9jYWxlOiBzdHJpbmcpOiBGb3JtYXR0ZXI8VD4ge1xyXG4gICAgaWYgKGxvY2FsZSA9PT0gbWFpbi5sb2NhbGUpIHtcclxuICAgICAgcmV0dXJuIChidW5kbGVPcktleTogQnVuZGxlIHwgc3RyaW5nLCBkYXRhPzogYW55KSA9PlxyXG4gICAgICAgIGZvcm1hdChtYWluRGVmaW5pdGlvbiwgdW5kZWZpbmVkLCBidW5kbGVPcktleSwgZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0ID0gYWx0cy5maW5kKGFsdCA9PiBhbHQubG9jYWxlID09PSBsb2NhbGUpO1xyXG5cclxuICAgIGlmICghdGFyZ2V0KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHByb3ZpZGVkIGxvY2FsZSAke2xvY2FsZX0gZG9lcyBub3QgZXhpc3QgaW4gdGhlIGxpc3Qgb2YgbGFuZ3VhZ2VzLmApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRhcmdldERlZmluaXRpb24gPSB0YXJnZXQuZGVmaW5pdGlvbihjcmVhdGVTdHJpbmdCdWlsZGVycyhsb2NhbGUpKTtcclxuXHJcbiAgICByZXR1cm4gKGJ1bmRsZU9yS2V5OiBCdW5kbGUgfCBzdHJpbmcsIGRhdGE/OiBhbnkpID0+XHJcbiAgICAgIGZvcm1hdCh0YXJnZXREZWZpbml0aW9uLCBtYWluRGVmaW5pdGlvbiwgYnVuZGxlT3JLZXksIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHsga2V5cywgYnVuZGxlLCBidWlsZEZvcm1hdHRlciB9O1xyXG59XHJcbiJdfQ== |
\ | No newline at end of file |