@noggin/elastic-noggin-sdk
Version:
Elastic Noggin SDK
54 lines (53 loc) • 2.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getLangs = exports.nowVar = exports.locale = void 0;
const operators_1 = require("rxjs/operators");
const rxjs_1 = require("rxjs");
const read_1 = require("./read");
const moment_timezone_1 = __importDefault(require("moment-timezone"));
const lodash_1 = require("lodash");
function locale(enSrvOptions) {
if (enSrvOptions.locale) {
return (0, rxjs_1.of)(enSrvOptions.locale);
}
return (0, read_1.read)("app/locale", enSrvOptions).pipe((0, operators_1.first)(), (0, operators_1.map)((localeEno) => {
enSrvOptions.locale = {
lang: localeEno.getFieldStringValue("app/type/locale:locale-id"),
timezone: localeEno.getFieldStringValue("app/type/locale:timezone"),
dateFormat: localeEno.getFieldStringValue("app/type/locale:dateformat"),
datetimeFormat: localeEno.getFieldStringValue("app/type/locale:datetimeformat"),
};
return enSrvOptions.locale;
}));
}
exports.locale = locale;
function nowVar(enSrvOptions) {
return locale(enSrvOptions).pipe((0, operators_1.map)((locale) => locale.timezone), (0, operators_1.catchError)((err) => (0, rxjs_1.of)("UTC")), (0, operators_1.map)((timezone) => (0, moment_timezone_1.default)().tz(timezone).format("YYYY-MM-DDTHH:mm:ssZZ")));
}
exports.nowVar = nowVar;
function getLangs(enSrvOptions, lang, includeFallbackLang = true) {
const langs = [];
if (lang) {
if ((0, lodash_1.isArray)(lang)) {
lang.forEach((val) => langs.push(val));
}
else {
langs.push(lang);
}
}
return includeFallbackLang
? locale(enSrvOptions).pipe((0, operators_1.map)((locale) => locale.lang), (0, operators_1.catchError)((err) => (0, rxjs_1.of)("en-us")), (0, operators_1.map)((systemLang) => {
if (langs.indexOf(systemLang) === -1) {
langs.push(systemLang);
}
if (langs.indexOf("en-us") === -1) {
langs.push("en-us");
}
return langs;
}))
: (0, rxjs_1.of)(langs);
}
exports.getLangs = getLangs;