UNPKG

sws-frontend

Version:

sws frontend project

145 lines 5.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.slow = function (promise, timeout) { return new Promise(function (resolve, reject) { return setTimeout(function () { return resolve(promise); }, timeout || 2000); }); }; exports.complete = function (spec) { return exports.merge(spec, { isComplete: function () { return true; } }); }; exports.hasUppercase = function (c) { return !!c && c != c.toLocaleLowerCase(); }; exports.merge = function (source) { var targets = []; for (var _i = 1; _i < arguments.length; _i++) { targets[_i - 1] = arguments[_i]; } return (Object.assign.apply(Object, [{}, source].concat(targets))); //return Object.assign(source,...targets); }; exports.cartesianProductOf = function (arrays) { function _inner() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if (arguments.length > 1) { var arr2_1 = args.pop(); // arr of arrs of elems var arr1 = args.pop(); // arr of elems return _inner.apply(void 0, args.concat([arr1.map(function (e1) { return arr2_1.map(function (e2) { return [e1].concat(e2); }); }) .reduce(function (arr, e) { return arr.concat(e); }, [])])); } else { return args[0]; } } ; return _inner.apply(void 0, arrays.concat([[[]]])); }; /*Another Version of the above function*/ //todo: evaluate for performance reason // // export const cartesianProductOf = (arrays:any[]) => { // const flatten = arr => arr.reduce((a, b) => a.concat(b), []); // const result = arrays.reduce(function(dim1, dim2){ // const result = dim1.map(d1=>dim2.map(d2=>(Array.isArray(d1) ? d1 : [d1]).concat(d2))); // const flattenResult = flatten(result); // return flattenResult; // }) // return result; // } exports.uuid = function () { /*jshint bitwise:false */ var i, random; var uuid = ''; for (i = 0; i < 32; i++) { random = Math.random() * 16 | 0; if (i === 8 || i === 12 || i === 16 || i === 20) { uuid += '-'; } uuid += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)) .toString(16); } return uuid; }; exports.cut = function (cutoff) { if (cutoff === void 0) { cutoff = 50; } return function (text) { return text && text.length > cutoff ? text.substring(0, cutoff) + "..." : text; }; }; exports.setrec = function (source, props) { source = source && source instanceof Object ? source : {}; var first = props[0], rest = props.slice(1); if (rest.length == 0) return first; else { var newval = exports.setrec(source[first], rest); if (newval == null) delete source[first]; else source[first] = newval; return source; } }; var lodash_1 = require("lodash"); var orderBy = function (model, key, sort) { return lodash_1.orderBy(model, key, sort); }; exports.deepCopy = function (toCopy) { // return JSON.parse(JSON.stringify(toCopy)) return lodash_1.cloneDeep(toCopy); }; exports.sort = function (model, key) { return lodash_1.sortBy(model, [key]); }; exports.property = function (prop) { return lodash_1.property(prop); }; function capitalize(word) { if (word) return word.replace(/(?:^|\s)\S/g, function (a) { return a.toUpperCase(); }); return undefined; } exports.capitalize = capitalize; function normalise(str) { return str && str.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }); } exports.normalise = normalise; function startWith(something) { return Promise.resolve(something); } exports.startWith = startWith; function compare(s1, s2) { return s1 < s2 ? -1 : s1 > s2 ? 1 : 0; } exports.compare = compare; // wraps a value into an event-like obejct function eventOf(val) { return { target: { value: val } }; } exports.eventOf = eventOf; function difference(a, b) { intersection(a, b, function (a, b, k) { delete a[k]; }); } exports.difference = difference; function intersection(a, b, op) { Object.keys(b).forEach(function (k, idx, array) { if (a[k]) op(a, b, k); }); } exports.intersection = intersection; var _deepEqual = require("deep-equal"); exports.deepEqual = _deepEqual; var Helpers = { slow: exports.slow, hasUppercase: exports.hasUppercase, normalise: normalise, startWith: startWith, compare: compare, cartesianProductOf: exports.cartesianProductOf, setrec: exports.setrec, complete: exports.complete, deepCopy: exports.deepCopy, deepEqual: exports.deepEqual, cut: exports.cut, merge: exports.merge, eventOf: eventOf, difference: difference, intersection: intersection, uuid: exports.uuid, sort: exports.sort, orderBy: orderBy, property: exports.property }; exports.default = Helpers; //# sourceMappingURL=helpers.js.map