sws-frontend
Version:
sws frontend project
145 lines • 5.01 kB
JavaScript
;
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