import _ from "underscore"; import { TObject } from "./dtypes"; export namespace dconverter { export function update(obj1: any, obj2: any) { for (var p in obj2) { if (obj1[p]) { _.extend(obj1[p], obj2[p]); } else { obj1[p] = obj2[p]; } } } export function stringToList(str: string): Array { if (!str) { return []; } if (!_.isString(str)) { return str; } return str.split(",").map((x) => x.trim()); } export function assert(cond: Boolean, err: string) { if (cond != true) { throw Error(err); } } export function sortObj(obj: TObject): any { if (typeof obj !== "object" || obj === null) return obj; if (Array.isArray(obj)) return obj.map((e) => sortObj(e)).sort(); return Object.keys(obj) .sort() .reduce((sorted, k) => { (sorted as any)[k] = sortObj(obj[k]); return sorted; }, {}); } export function convertAnyToString(a: any): string { if (_.isObject(a) || _.isArray(a)) { return JSON.stringify(a); } else { return `${a}`; } } export function convertToListIfNot(data: any): Array { if (_.isArray(data)) { return data; } else { return [data]; } } }