UNPKG

@singleton-i18n/angular-client

Version:

Singleton client code for Angular 10.

86 lines 10.3 kB
/* * Copyright 2019-2021 VMware, Inc. * SPDX-License-Identifier: EPL-2.0 */ import { isDefined } from '../util'; /** * Enum for Type values for Stringable Object * type ObjectType = 'stringableList' | 'otherType' ; * @readonly */ export var ObjectType; (function (ObjectType) { ObjectType[ObjectType["stringableList"] = 1] = "stringableList"; ObjectType[ObjectType["otherType"] = 2] = "otherType"; })(ObjectType || (ObjectType = {})); /** * listObject is one object type which vip first supports for converting object to string * in future, if have more objects have requirements for converting into string, they have to * implement Stringable interface just like this listObject class. */ export class listObject { constructor(obj) { this.obj = obj; this.obj = obj; } check() { return this.obj && this.obj['listItems'] && this.obj['listItems'] instanceof Array && this.obj['listItems'].every((i) => (typeof i === "string")) && this.obj['type'] && typeof this.obj['type'] == 'number' && this.obj['separatorType'] && typeof this.obj['separatorType'] == 'string'; } toString() { return this.obj['listItems'].join(this.obj['separatorType']); } } /** * This is default object type which can't be converted into string, so directly print error with object structure in browser console */ export class defaultObject { constructor(obj) { this.obj = obj; this.obj = obj; } check() { return true; } toString() { console.error(JSON.stringify(this.obj)); return JSON.stringify(this.obj); } } /** * Using factory model here is in order to make the functionality flexiable and scalable, * if have other objects require converting into string, only add corresponding condition judgement along with * Object type class which implements Stringable interface * @param obj */ export function factory(obj) { if (obj['type'] == ObjectType.stringableList) { return new listObject(obj); } else { return new defaultObject(obj); } } /** * mainly handle source args Array, and make sure each parameter in Array converting into string * @param [args] * @returns */ export function filterArgs(args) { if (isDefined(args) && Object.prototype.toString.call(args) == '[object Array]') { args.forEach((arg, i) => { if (Object.prototype.toString.call(arg) == '[object Object]') { var obj = factory(arg); if (obj.check()) { args.splice(i, 1, obj.toString()); } else { console.error(JSON.stringify(arg)); args.splice(i, 1, JSON.stringify(arg)); } } }); } return args; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ybGlnZW5nL1Byb2plY3RzL0Rldm9wcy9DbGllbnRfQW5ndWxhcl9HaXRIdWJfTnBtanMvdmlwL2NpL3B1YjJvcmcvQ2xpZW50X0FuZ3VsYXJfR2l0SHViX05wbWpzL3NpbmdsZXRvbi9wcm9qZWN0cy9hbmd1bGFyLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9leHRlbnNpb25zL3N0cmluZ2FibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVwQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNsQiwrREFBa0IsQ0FBQTtJQUNsQixxREFBUyxDQUFBO0FBQ2IsQ0FBQyxFQUhXLFVBQVUsS0FBVixVQUFVLFFBR3JCO0FBV0Q7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBRW5CLFlBQW1CLEdBQVc7UUFBWCxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ25CLENBQUM7SUFNRCxLQUFLO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7ZUFDL0ksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFFBQVEsQ0FBQztJQUNoSixDQUFDO0lBQ0QsUUFBUTtRQUNKLE9BQVEsSUFBSSxDQUFDLEdBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDSjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFDdEIsWUFBbUIsR0FBVztRQUFYLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUNELEtBQUs7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsUUFBUTtRQUNKLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FFSjtBQUVEOzs7OztHQUtHO0FBRUgsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQy9CLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxjQUFjLEVBQUU7UUFDMUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUM5QjtTQUNJO1FBQ0QsT0FBTyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNqQztBQUVMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFpQjtJQUN4QyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksZ0JBQWdCLEVBQUU7UUFDNUUsSUFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMvQixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxpQkFBaUIsRUFBRTtnQkFDMUQsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDWixJQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7aUJBQ2hEO3FCQUFNO29CQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNsQyxJQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNyRDthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7S0FDTjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTktMjAyMSBWTXdhcmUsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJy4uL3V0aWwnO1xuXG4vKipcbiAqIEVudW0gZm9yIFR5cGUgdmFsdWVzIGZvciBTdHJpbmdhYmxlIE9iamVjdFxuICogdHlwZSBPYmplY3RUeXBlID0gJ3N0cmluZ2FibGVMaXN0JyB8ICdvdGhlclR5cGUnIDtcbiAqIEByZWFkb25seVxuICovXG5leHBvcnQgZW51bSBPYmplY3RUeXBlIHtcbiAgICBzdHJpbmdhYmxlTGlzdCA9IDEsXG4gICAgb3RoZXJUeXBlXG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBjbGFzc2VzIHRoYXQgcmVwcmVzZW50IGEgc3RyaW5nYWJsZSBPYmplY3QuXG4gKiBQcm92aWRpbmcgdHdvIGFiYXN0cmFjdCBtZXRob2RzIGhlcmUgaW4gaW50ZXJmYWNlIGlzIGlubnRlbmRlZCBmb3IgYW55IE9iamVjdHMgaW1wbGVtZW50YXRpb24sXG4gKiBzbyB0aGF0IHRoZSBvYmplY3RzIGNhbiBiZSBzdHJpbmdhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nYWJsZSB7XG4gICAgY2hlY2soKTogYm9vbGVhbjtcbiAgICB0b1N0cmluZygpOiBzdHJpbmc7XG59XG4vKipcbiAqIGxpc3RPYmplY3QgaXMgb25lIG9iamVjdCB0eXBlIHdoaWNoIHZpcCBmaXJzdCBzdXBwb3J0cyBmb3IgY29udmVydGluZyBvYmplY3QgdG8gc3RyaW5nXG4gKiBpbiBmdXR1cmUsIGlmIGhhdmUgbW9yZSBvYmplY3RzIGhhdmUgcmVxdWlyZW1lbnRzIGZvciBjb252ZXJ0aW5nIGludG8gc3RyaW5nLCB0aGV5IGhhdmUgdG9cbiAqIGltcGxlbWVudCBTdHJpbmdhYmxlIGludGVyZmFjZSBqdXN0IGxpa2UgdGhpcyBsaXN0T2JqZWN0IGNsYXNzLlxuICovXG5leHBvcnQgY2xhc3MgbGlzdE9iamVjdCBpbXBsZW1lbnRzIFN0cmluZ2FibGUge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIG9iajogT2JqZWN0KSB7XG4gICAgICAgIHRoaXMub2JqID0gb2JqO1xuICAgIH1cbiAgICBsaXN0SXRlbXM6IHtcbiAgICAgICAgW2luZGV4OiBudW1iZXJdOiBzdHJpbmc7XG4gICAgfVxuICAgIHNlcGFyYXRvclR5cGU6IHN0cmluZztcbiAgICB0eXBlOiBPYmplY3RUeXBlO1xuICAgIGNoZWNrKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmogJiYgdGhpcy5vYmpbJ2xpc3RJdGVtcyddICYmIHRoaXMub2JqWydsaXN0SXRlbXMnXSBpbnN0YW5jZW9mIEFycmF5ICYmIHRoaXMub2JqWydsaXN0SXRlbXMnXS5ldmVyeSgoaTogYW55KSA9PiAodHlwZW9mIGkgPT09IFwic3RyaW5nXCIpKVxuICAgICAgICAgICAgJiYgdGhpcy5vYmpbJ3R5cGUnXSAmJiB0eXBlb2YgdGhpcy5vYmpbJ3R5cGUnXSA9PSAnbnVtYmVyJyAmJiB0aGlzLm9ialsnc2VwYXJhdG9yVHlwZSddICYmIHR5cGVvZiB0aGlzLm9ialsnc2VwYXJhdG9yVHlwZSddID09ICdzdHJpbmcnO1xuICAgIH1cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKHRoaXMub2JqIGFzIHt9KVsnbGlzdEl0ZW1zJ10uam9pbih0aGlzLm9ialsnc2VwYXJhdG9yVHlwZSddKTtcbiAgICB9XG59XG5cbi8qKlxuICogVGhpcyBpcyBkZWZhdWx0IG9iamVjdCB0eXBlIHdoaWNoIGNhbid0IGJlIGNvbnZlcnRlZCBpbnRvIHN0cmluZywgc28gZGlyZWN0bHkgcHJpbnQgZXJyb3Igd2l0aCBvYmplY3Qgc3RydWN0dXJlIGluIGJyb3dzZXIgY29uc29sZVxuICovXG5leHBvcnQgY2xhc3MgZGVmYXVsdE9iamVjdCBpbXBsZW1lbnRzIFN0cmluZ2FibGUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBvYmo6IE9iamVjdCkge1xuICAgICAgICB0aGlzLm9iaiA9IG9iajtcbiAgICB9XG4gICAgY2hlY2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICBjb25zb2xlLmVycm9yKEpTT04uc3RyaW5naWZ5KHRoaXMub2JqKSk7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLm9iaik7XG4gICAgfVxuXG59XG5cbi8qKlxuICogVXNpbmcgZmFjdG9yeSBtb2RlbCBoZXJlIGlzIGluIG9yZGVyIHRvIG1ha2UgdGhlIGZ1bmN0aW9uYWxpdHkgZmxleGlhYmxlIGFuZCBzY2FsYWJsZSxcbiAqIGlmIGhhdmUgb3RoZXIgb2JqZWN0cyByZXF1aXJlIGNvbnZlcnRpbmcgaW50byBzdHJpbmcsIG9ubHkgYWRkIGNvcnJlc3BvbmRpbmcgY29uZGl0aW9uIGp1ZGdlbWVudCBhbG9uZyB3aXRoIFxuICogT2JqZWN0IHR5cGUgY2xhc3Mgd2hpY2ggaW1wbGVtZW50cyBTdHJpbmdhYmxlIGludGVyZmFjZVxuICogQHBhcmFtIG9iaiBcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZmFjdG9yeShvYmo6IE9iamVjdCkge1xuICAgIGlmIChvYmpbJ3R5cGUnXSA9PSBPYmplY3RUeXBlLnN0cmluZ2FibGVMaXN0KSB7XG4gICAgICAgIHJldHVybiBuZXcgbGlzdE9iamVjdChvYmopO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBkZWZhdWx0T2JqZWN0KG9iaik7XG4gICAgfVxuXG59XG5cbi8qKlxuICogbWFpbmx5IGhhbmRsZSBzb3VyY2UgYXJncyBBcnJheSwgYW5kIG1ha2Ugc3VyZSBlYWNoIHBhcmFtZXRlciBpbiBBcnJheSBjb252ZXJ0aW5nIGludG8gc3RyaW5nIFxuICogQHBhcmFtIFthcmdzXSBcbiAqIEByZXR1cm5zICBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckFyZ3MoYXJncz86IGFueVtdIHwge30pIHtcbiAgICBpZiAoaXNEZWZpbmVkKGFyZ3MpICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhcmdzKSA9PSAnW29iamVjdCBBcnJheV0nKSB7XG4gICAgICAgIChhcmdzIGFzIGFueVtdKS5mb3JFYWNoKChhcmcsIGkpID0+IHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKSA9PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgICAgICAgICAgICAgIHZhciBvYmogPSBmYWN0b3J5KGFyZyk7XG4gICAgICAgICAgICAgICAgaWYgKG9iai5jaGVjaygpKSB7XG4gICAgICAgICAgICAgICAgICAgIChhcmdzIGFzIGFueVtdKS5zcGxpY2UoaSwgMSwgb2JqLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoSlNPTi5zdHJpbmdpZnkoYXJnKSk7XG4gICAgICAgICAgICAgICAgICAgIChhcmdzIGFzIGFueVtdKS5zcGxpY2UoaSwgMSwgSlNPTi5zdHJpbmdpZnkoYXJnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFyZ3M7XG59XG4iXX0=