UNPKG

tell-me-when

Version:
39 lines (38 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getGrammar = getGrammar; var _GrammarNode = require("./GrammarNode.js"); var _locales = require("../locales.js"); const grammarCache = new Map(); function getGrammar({ locales: localeNames = getDefaultLocaleNames() } = {}) { const key = JSON.stringify(localeNames); let grammar = grammarCache.get(key); if (grammar) return grammar; grammarCache.set(key, grammar = getGrammarHelper({ localeNames })); return grammar; } function getGrammarHelper({ localeNames }) { if (localeNames.length === 1) { return _locales.locales[localeNames[0]]; } return _GrammarNode.GrammarNode.longestOf(...localeNames.map(name => _locales.locales[name])); } let defaultLocaleNames; function getDefaultLocaleNames() { if (defaultLocaleNames) return defaultLocaleNames; const { locale: primaryLocale } = new Intl.DateTimeFormat().resolvedOptions(); const localeKeys = Object.keys(_locales.locales); const primary = localeKeys.find(k => primaryLocale.startsWith(k)); return defaultLocaleNames = [...(primary ? [primary] : []), ...localeKeys.filter(k => k !== primary)]; } //# sourceMappingURL=getGrammar.js.map