##// END OF EJS Templates
Added a fallback error handler to observables, it will report unhandled errors
Added a fallback error handler to observables, it will report unhandled errors

File last commit:

r122:fb2ea4d6aaba v1.6.3 default
r138:98b2c550c676 v1.9.0-rc3 default
Show More
i18n.ts
57 lines | 1.8 KiB | video/mp2t | TypeScriptLexer
cin
Converted to subproject djx, removed dojo-typings
r65 import { id as mid} from "module";
cin
type fixes for i18n, store
r120 import { PromiseOrValue } from "@implab/core-amd/interfaces";
import { 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
type fixes for i18n, store
r120 export const bundle = <T extends object>(nls: T, locales?: Record<string, () => PromiseOrValue<object>>) : {
cin
Fixed scheduleRender context restoration
r122 i18n: (this: void, locale?: string) => T;
define: (this: void, pack: Partial<T>) => object;
load: (this: void, id: string, require: Require, cb: OnLoad, config: {isBuild?: boolean}) => void;
cin
type fixes for i18n, store
r120 } => {
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;
};
cin
type fixes for i18n, store
r120 fn.i18n = fn;
cin
Fixed scheduleRender context restoration
r122 fn.nls = fn;
cin
type fixes for i18n, store
r120 fn.define = (pack: Partial<T>): object => 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;
cin
type fixes for i18n, store
r120 };