@ionre/utils
Version:
utility functions
63 lines (62 loc) • 2.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.adjust = function (f) { return function (prop) { return function (obj) {
var _a;
return Object.assign({}, obj, (_a = {}, _a[prop] = f(obj[prop]), _a));
}; }; };
exports.assign = function (diff) { return function (object) { return Object.assign({}, object, diff); }; };
exports.assoc = function (key) { return function (val) { return function (obj) {
var _a;
return Object.assign({}, obj, (_a = {}, _a[key] = val, _a));
}; }; };
exports.deepMerge = require("deepmerge").all;
exports.equal = function (obj1) { return function (obj2) {
var keys1 = Object.keys(obj1);
var n = keys1.length;
for (var i = 0; i < n; i++) {
var key = keys1[i];
if (!obj2.hasOwnProperty(key)) {
return false;
}
else {
var _a = [obj1[key], obj2[key]], val1 = _a[0], val2 = _a[1];
if (typeof val1 == "object") {
if (typeof val2 == "object") {
if (!exports.equal(val1)(val2)) {
return false;
}
}
else {
return false;
}
}
else {
if (val1 !== val2) {
return false;
}
}
}
}
return true;
}; };
exports.evolve = function (fobj) { return function (obj) {
var _a;
var obj1 = Object.assign({}, obj);
for (var key in fobj) {
if (obj.hasOwnProperty(key)) {
Object.assign(obj1, (_a = {}, _a[key] = fobj[key](obj[key]), _a));
}
}
return obj1;
}; };
exports.keys = function (obj) { return Object.keys(obj); };
exports.method = function (key) { return function (arg) { return function (obj) { return obj[key](arg); }; }; };
exports.method0 = function (key) { return function (obj) { return obj[key](); }; };
exports.pairs = function (obj) { return Object.keys(obj).map(function (key) { return [key, obj[key]]; }); };
exports.prop = function (key) { return function (object) { return object[key]; }; };
exports.remove = function (key) { return function (obj) {
var obj1 = Object.assign({}, obj);
delete obj1[key];
return obj1;
}; };
exports.values = function (obj) { return Object.values(obj); };