@etsoo/appscript
Version:
Applications shared TypeScript framework
52 lines (51 loc) • 1.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Culture = void 0;
const shared_1 = require("@etsoo/shared");
/**
* Culture namespace
*/
var Culture;
(function (Culture) {
/**
* Make culture
* @param cultureMaker Culture maker
* @param resources Resources
* @returns Culture
*/
function make(cultureMaker, ...resources) {
return cultureMaker(async () => {
const rs = await Promise.all(resources.map((resource) => new Promise((resolve) => {
if (typeof resource === "object") {
resolve(resource);
}
else {
resource().then((result) => resolve(result));
}
})));
return rs.reduce((prev, curr) => ({
...prev,
...curr
}));
});
}
Culture.make = make;
/**
* Get en neutral culture
* @param localResources Local resources
* @returns Full culture
*/
Culture.en = (...resources) => make(shared_1.DomUtils.en, import("./en.json"), ...resources);
/**
* Get zh-Hans neutral cultrue
* @param localResources Local resources
* @returns Full culture
*/
Culture.zhHans = (...resources) => make(shared_1.DomUtils.zhHans, import("./zh-Hans.json"), ...resources);
/**
* Get zh-Hant neutral cultrue
* @param localResources Local resources
* @returns Full culture
*/
Culture.zhHant = (...resources) => make(shared_1.DomUtils.zhHant, import("./zh-Hant.json"), ...resources);
})(Culture || (exports.Culture = Culture = {}));