1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = void 0;
|
7 |
|
8 | var _locale = require("locale");
|
9 |
|
10 | var _fs = _interopRequireDefault(require("fs"));
|
11 |
|
12 | var _path = _interopRequireDefault(require("path"));
|
13 |
|
14 | var _fusionCore = require("fusion-core");
|
15 |
|
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17 |
|
18 | /** Copyright (c) 2018 Uber Technologies, Inc.
|
19 | *
|
20 | * This source code is licensed under the MIT license found in the
|
21 | * LICENSE file in the root directory of this source tree.
|
22 | *
|
23 | *
|
24 | */
|
25 | const defaultResolveLocales = ctx => ctx.headers['accept-language'];
|
26 |
|
27 | const loader = (resolveLocales = defaultResolveLocales) => {
|
28 | const readDir = root => {
|
29 | try {
|
30 | return _fs.default.readdirSync(root);
|
31 | } catch (e) {
|
32 | return [];
|
33 | }
|
34 | };
|
35 |
|
36 | const root = './translations';
|
37 | const locales = readDir(root).filter(p => p.match(/json$/)).map(p => p.replace(/\.json$/, ''));
|
38 | const data = locales.reduce((memo, locale) => {
|
39 | const parsedLocale = new _locale.Locale(locale);
|
40 | memo[parsedLocale.normalized] = JSON.parse(_fs.default.readFileSync(_path.default.join(root, locale + '.json'), 'utf8'));
|
41 | return memo;
|
42 | }, {});
|
43 | const supportedLocales = new _locale.Locales(locales);
|
44 | return {
|
45 | from: (0, _fusionCore.memoize)(ctx => {
|
46 | const expectedLocales = new _locale.Locales(resolveLocales(ctx));
|
47 | const locale = expectedLocales.best(supportedLocales);
|
48 | const translations = data[locale.normalized];
|
49 | return {
|
50 | translations,
|
51 | locale
|
52 | };
|
53 | })
|
54 | };
|
55 | };
|
56 |
|
57 | var _default = true ? loader : null;
|
58 |
|
59 | exports.default = _default;
|
60 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvYWRlci5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0UmVzb2x2ZUxvY2FsZXMiLCJjdHgiLCJoZWFkZXJzIiwibG9hZGVyIiwicmVzb2x2ZUxvY2FsZXMiLCJyZWFkRGlyIiwicm9vdCIsImZzIiwicmVhZGRpclN5bmMiLCJlIiwibG9jYWxlcyIsImZpbHRlciIsInAiLCJtYXRjaCIsIm1hcCIsInJlcGxhY2UiLCJkYXRhIiwicmVkdWNlIiwibWVtbyIsImxvY2FsZSIsInBhcnNlZExvY2FsZSIsIkxvY2FsZSIsIm5vcm1hbGl6ZWQiLCJKU09OIiwicGFyc2UiLCJyZWFkRmlsZVN5bmMiLCJwYXRoIiwiam9pbiIsInN1cHBvcnRlZExvY2FsZXMiLCJMb2NhbGVzIiwiZnJvbSIsImV4cGVjdGVkTG9jYWxlcyIsImJlc3QiLCJ0cmFuc2xhdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFRQTs7QUFDQTs7QUFDQTs7QUFFQTs7OztBQVpBOzs7Ozs7O0FBMkJBLE1BQU1BLHFCQUF5QyxHQUFHQyxHQUFHLElBQ25EQSxHQUFHLENBQUNDLE9BQUosQ0FBWSxpQkFBWixDQURGOztBQUdBLE1BQU1DLE1BQXlCLEdBQUcsQ0FBQ0MsY0FBYyxHQUFHSixxQkFBbEIsS0FBNEM7QUFDNUUsUUFBTUssT0FBTyxHQUFHQyxJQUFJLElBQUk7QUFDdEIsUUFBSTtBQUNGLGFBQU9DLFlBQUdDLFdBQUgsQ0FBZUYsSUFBZixDQUFQO0FBQ0QsS0FGRCxDQUVFLE9BQU9HLENBQVAsRUFBVTtBQUNWLGFBQU8sRUFBUDtBQUNEO0FBQ0YsR0FORDs7QUFPQSxRQUFNSCxJQUFJLEdBQUcsZ0JBQWI7QUFDQSxRQUFNSSxPQUFPLEdBQUdMLE9BQU8sQ0FBQ0MsSUFBRCxDQUFQLENBQ2JLLE1BRGEsQ0FDTkMsQ0FBQyxJQUFJQSxDQUFDLENBQUNDLEtBQUYsQ0FBUSxPQUFSLENBREMsRUFFYkMsR0FGYSxDQUVURixDQUFDLElBQUlBLENBQUMsQ0FBQ0csT0FBRixDQUFVLFNBQVYsRUFBcUIsRUFBckIsQ0FGSSxDQUFoQjtBQUdBLFFBQU1DLElBQUksR0FBR04sT0FBTyxDQUFDTyxNQUFSLENBQWUsQ0FBQ0MsSUFBRCxFQUFPQyxNQUFQLEtBQWtCO0FBQzVDLFVBQU1DLFlBQVksR0FBRyxJQUFJQyxjQUFKLENBQVdGLE1BQVgsQ0FBckI7QUFDQUQsSUFBQUEsSUFBSSxDQUFDRSxZQUFZLENBQUNFLFVBQWQsQ0FBSixHQUFnQ0MsSUFBSSxDQUFDQyxLQUFMLENBQzlCakIsWUFBR2tCLFlBQUgsQ0FBZ0JDLGNBQUtDLElBQUwsQ0FBVXJCLElBQVYsRUFBZ0JhLE1BQU0sR0FBRyxPQUF6QixDQUFoQixFQUFtRCxNQUFuRCxDQUQ4QixDQUFoQztBQUdBLFdBQU9ELElBQVA7QUFDRCxHQU5ZLEVBTVYsRUFOVSxDQUFiO0FBT0EsUUFBTVUsZ0JBQWdCLEdBQUcsSUFBSUMsZUFBSixDQUFZbkIsT0FBWixDQUF6QjtBQUVBLFNBQU87QUFDTG9CLElBQUFBLElBQUksRUFBRSx5QkFBUTdCLEdBQUcsSUFBSTtBQUNuQixZQUFNOEIsZUFBZSxHQUFHLElBQUlGLGVBQUosQ0FBWXpCLGNBQWMsQ0FBQ0gsR0FBRCxDQUExQixDQUF4QjtBQUNBLFlBQU1rQixNQUFNLEdBQUdZLGVBQWUsQ0FBQ0MsSUFBaEIsQ0FBcUJKLGdCQUFyQixDQUFmO0FBQ0EsWUFBTUssWUFBb0MsR0FBR2pCLElBQUksQ0FBQ0csTUFBTSxDQUFDRyxVQUFSLENBQWpEO0FBQ0EsYUFBTztBQUFDVyxRQUFBQSxZQUFEO0FBQWVkLFFBQUFBO0FBQWYsT0FBUDtBQUNELEtBTEs7QUFERCxHQUFQO0FBUUQsQ0E3QkQ7O2VBK0JrQixPQUFXaEIsTUFBWCxHQUFvQixJIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIENvcHlyaWdodCAoYykgMjAxOCBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqIEBmbG93XG4gKi9cblxuaW1wb3J0IHtMb2NhbGUsIExvY2FsZXN9IGZyb20gJ2xvY2FsZSc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7bWVtb2l6ZX0gZnJvbSAnZnVzaW9uLWNvcmUnO1xuaW1wb3J0IHR5cGUge0NvbnRleHR9IGZyb20gJ2Z1c2lvbi1jb3JlJztcblxuaW1wb3J0IHR5cGUge1RyYW5zbGF0aW9uc09iamVjdFR5cGV9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSBJMThuTG9hZGVyVHlwZSA9IHtcbiAgZnJvbTogKFxuICAgIGN0eDogQ29udGV4dFxuICApID0+IHtsb2NhbGU6IHN0cmluZyB8IExvY2FsZSwgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnNPYmplY3RUeXBlfSxcbn07XG5leHBvcnQgdHlwZSBMb2NhbGVSZXNvbHZlclR5cGUgPSAoY3R4OiBDb250ZXh0KSA9PiBzdHJpbmc7XG5leHBvcnQgdHlwZSBMb2FkZXJGYWN0b3J5VHlwZSA9IChcbiAgcmVzb2x2ZUxvY2FsZXM/OiBMb2NhbGVSZXNvbHZlclR5cGVcbikgPT4gSTE4bkxvYWRlclR5cGU7XG5cbmNvbnN0IGRlZmF1bHRSZXNvbHZlTG9jYWxlczogTG9jYWxlUmVzb2x2ZXJUeXBlID0gY3R4ID0+XG4gIGN0eC5oZWFkZXJzWydhY2NlcHQtbGFuZ3VhZ2UnXTtcblxuY29uc3QgbG9hZGVyOiBMb2FkZXJGYWN0b3J5VHlwZSA9IChyZXNvbHZlTG9jYWxlcyA9IGRlZmF1bHRSZXNvbHZlTG9jYWxlcykgPT4ge1xuICBjb25zdCByZWFkRGlyID0gcm9vdCA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBmcy5yZWFkZGlyU3luYyhyb290KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9O1xuICBjb25zdCByb290ID0gJy4vdHJhbnNsYXRpb25zJztcbiAgY29uc3QgbG9jYWxlcyA9IHJlYWREaXIocm9vdClcbiAgICAuZmlsdGVyKHAgPT4gcC5tYXRjaCgvanNvbiQvKSlcbiAgICAubWFwKHAgPT4gcC5yZXBsYWNlKC9cXC5qc29uJC8sICcnKSk7XG4gIGNvbnN0IGRhdGEgPSBsb2NhbGVzLnJlZHVjZSgobWVtbywgbG9jYWxlKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkTG9jYWxlID0gbmV3IExvY2FsZShsb2NhbGUpO1xuICAgIG1lbW9bcGFyc2VkTG9jYWxlLm5vcm1hbGl6ZWRdID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocm9vdCwgbG9jYWxlICsgJy5qc29uJyksICd1dGY4JylcbiAgICApO1xuICAgIHJldHVybiBtZW1vO1xuICB9LCB7fSk7XG4gIGNvbnN0IHN1cHBvcnRlZExvY2FsZXMgPSBuZXcgTG9jYWxlcyhsb2NhbGVzKTtcblxuICByZXR1cm4ge1xuICAgIGZyb206IG1lbW9pemUoY3R4ID0+IHtcbiAgICAgIGNvbnN0IGV4cGVjdGVkTG9jYWxlcyA9IG5ldyBMb2NhbGVzKHJlc29sdmVMb2NhbGVzKGN0eCkpO1xuICAgICAgY29uc3QgbG9jYWxlID0gZXhwZWN0ZWRMb2NhbGVzLmJlc3Qoc3VwcG9ydGVkTG9jYWxlcyk7XG4gICAgICBjb25zdCB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uc09iamVjdFR5cGUgPSBkYXRhW2xvY2FsZS5ub3JtYWxpemVkXTtcbiAgICAgIHJldHVybiB7dHJhbnNsYXRpb25zLCBsb2NhbGV9O1xuICAgIH0pLFxuICB9O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKCgoX19OT0RFX18gPyBsb2FkZXIgOiBudWxsKTogYW55KTogdHlwZW9mIGxvYWRlcik7XG4iXX0= |
\ | No newline at end of file |