UNPKG

@cloudbet/market-helper

Version:

SDK to generate localized sport market information

75 lines 2.93 kB
var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; var _a, _b, _c; import enMarketDefinitions from './markets/en.json'; import { Locale } from './sports-core-types'; import enSports from './sports/en.json'; var locales = (_a = {}, _a[Locale.en] = { marketDefinitions: enMarketDefinitions, sportsLocale: enSports, }, _a); export var getMarketDefinitions = function (locale) { var _a; var result = ((_a = locales[locale]) === null || _a === void 0 ? void 0 : _a.marketDefinitions) || {}; if (locale === Locale.en) { return result; } // some locale's marketDefinitions are missing "{sportKey}.freetext" key, fill them in with the english ones if (Object.keys(result).length > 0) { var enData_1 = enMarketDefinitions; Object.keys(enData_1).filter(function (key) { return key.includes('freetext'); }).forEach(function (key) { result[key] = enData_1[key]; }); } return result; }; export var getSportsLocale = function (locale) { return (locales[locale] || locales.en).sportsLocale; }; var loadingLocales = (_b = {}, _b[Locale.en] = false, _b); export var isLoading = function (locale) { return !!loadingLocales[locale]; }; export var isLoaded = function (locale) { return !!locales[locale]; }; var localeAlias = (_c = {}, _c[Locale.zh] = [Locale.zh_CN], _c[Locale.zh_CN] = [Locale.zh], _c); export var loadLocale = function (locale) { return new Promise(function (res, rej) { var marketDefinitions = undefined; var sportsLocale = undefined; loadingLocales[locale] = true; var finish = function () { if (!marketDefinitions || !sportsLocale) { return; } loadingLocales[locale] = false; var sportsMarketLocale = { marketDefinitions: marketDefinitions, sportsLocale: sportsLocale }; var aliases = __spreadArrays((localeAlias[locale] || []), [locale]); aliases.forEach(function (l) { return locales[l] = sportsMarketLocale; }); res({ marketDefinitions: marketDefinitions, sportsLocale: sportsLocale }); }; var localeFileName = locale.replace('_', '-'); import("./markets/" + localeFileName + ".json") .then(function (m) { marketDefinitions = (m.default || m); finish(); }) .catch(rej); import("./sports/" + localeFileName + ".json") .then(function (m) { sportsLocale = (m.default || m); finish(); }) .catch(rej); }); }; //# sourceMappingURL=locales.js.map