##// END OF EJS Templates
corrected tear down logic handling in observables. Added support for observable query results
corrected tear down logic handling in observables. Added support for observable query results

File last commit:

r109:4a375b9c654a default
r110:1a190b3a757d v1.4.0 default
Show More
i18n.ts
51 lines | 1.6 KiB | video/mp2t | TypeScriptLexer
cin
Converted to subproject djx, removed dojo-typings
r65 import { id as mid} from "module";
import { MapOf } from "@implab/core-amd/interfaces";
cin
linting
r109 import { LocaleProvider, NlsBundle } from "./NlsBundle";
cin
Converted to subproject djx, removed dojo-typings
r65 import { isPromise } from "@implab/core-amd/safe";
import { locale as sysLocale } from "dojo/_base/kernel";
import { TraceSource } from "@implab/core-amd/log/TraceSource";
const trace = TraceSource.get(mid);
trace.debug("Current sysLocale: {0}", sysLocale);
export interface OnLoad {
cin
linting
r109 (result?: unknown): void;
error(err: unknown): void;
cin
Converted to subproject djx, removed dojo-typings
r65 }
cin
linting
r109 export function bundle<T extends object>(nls: T, locales?: MapOf<LocaleProvider<object>>) {
cin
Converted to subproject djx, removed dojo-typings
r65 const nlsBundle = new NlsBundle(nls, locales);
const fn = (_locale?: string) => {
const locale = _locale || sysLocale;
const result = nlsBundle.getLocale(locale);
if (isPromise(result))
throw new Error(`The bundle '${locale}' isn't loaded`);
else
return result;
};
fn.define = (pack: Partial<T>) => pack;
cin
linting
r109 fn.load = async (id: string, require: Require, cb: OnLoad, config: {isBuild?: boolean}) => {
cin
Converted to subproject djx, removed dojo-typings
r65 const locale = id || sysLocale;
if (config && config.isBuild) {
cb();
} else {
try {
await nlsBundle.getLocale(locale);
cb();
} catch (e) {
if(cb.error) {
cb.error(e);
} else {
// in case the loader doesn't support error reporting
trace.error("Error loading {0}: {1}", locale, e);
}
}
}
};
return fn;
}