UNPKG

@etsoo/appscript

Version:

Applications shared TypeScript framework

49 lines (48 loc) 1.52 kB
import { DomUtils } from "@etsoo/shared"; /** * Culture namespace */ export 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(DomUtils.en, import("./en.json"), ...resources); /** * Get zh-Hans neutral cultrue * @param localResources Local resources * @returns Full culture */ Culture.zhHans = (...resources) => make(DomUtils.zhHans, import("./zh-Hans.json"), ...resources); /** * Get zh-Hant neutral cultrue * @param localResources Local resources * @returns Full culture */ Culture.zhHant = (...resources) => make(DomUtils.zhHant, import("./zh-Hant.json"), ...resources); })(Culture || (Culture = {}));