fus-ext
Version:
FutureScript Extension
126 lines (124 loc) • 6.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.deepClone = exports.deepAbsorb = exports.absorb = exports.deepAssign = exports.keyValues = exports.clone = exports.isNormalObject = exports.isObject = undefined;
var _main = require("./main");
var dotDotCalc_573300145710716007 = function (dotDot, a, b, c) {
return dotDot(a)[b](a, ...c);
};var isObject, isNormalObject, clone, keyValues, deepAssign, absorb, deepAbsorb, deepClone;exports.isObject = isObject = function (ns, x) {
return (() => {
return (typeof x === "object" || typeof x === "function") && x !== null;
})();
};exports.isNormalObject = isNormalObject = function (ns, x) {
return (() => {
return dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "isObject", [x]) && typeof x !== "function" && !Array.isArray(x);
})();
};exports.clone = clone = function (ns, x) {
return (() => {
var y;y = {};Object.keys(x).forEach(function (key) {
return (() => {
y[key] = x[key];
})();
});return y;
})();
};exports.keyValues = keyValues = function (ns, x) {
return (() => {
return Object.keys(x).map(function (key) {
return (() => {
return [key, x[key]];
})();
});
})();
};exports.deepAssign = deepAssign = function (ns, theTarget, ...sources) {
return (() => {
sources.forEach(function (theSource) {
return (() => {
var internalDeepAssign;internalDeepAssign = function (target, source) {
return (() => {
return dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "keyValues", [source]).forEach(function ([key, value]) {
return (() => {
return dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "isObject", [value]) && !Array.isArray(value) && dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "isObject", [target[key]]) && !Array.isArray(target[key]) ? (() => {
return internalDeepAssign(target[key], value);
})() : (() => {
target[key] = dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "deepClone", [value]);
})();
})();
});
})();
};return internalDeepAssign(theTarget, theSource);
})();
});return theTarget;
})();
};exports.absorb = absorb = function (ns, subject, ...objects) {
return (() => {
objects.forEach(function (object) {
return (() => {
return dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "keyValues", [object]).forEach(function ([key, value]) {
return (() => {
return subject[key] === undefined ? (() => {
subject[key] = value;
})() : undefined;
})();
});
})();
});return subject;
})();
};exports.deepAbsorb = deepAbsorb = function (ns, theSubject, ...objects) {
return (() => {
objects.forEach(function (theObject) {
return (() => {
var internalDeepAbsorb;internalDeepAbsorb = function (subject, object) {
return (() => {
return dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "keyValues", [object]).forEach(function ([key, value]) {
return (() => {
return dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "isObject", [value]) && !Array.isArray(value) && dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "isObject", [subject[key]]) && !Array.isArray(subject[key]) ? (() => {
return internalDeepAbsorb(subject[key], value);
})() : (() => {
return subject[key] === undefined ? (() => {
subject[key] = dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "deepClone", [value]);
})() : undefined;
})();
})();
});
})();
};return internalDeepAbsorb(theSubject, theObject);
})();
});return theSubject;
})();
};exports.deepClone = deepClone = function (ns, x) {
return (() => {
var theTarget, deepCopyFrom;return dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "isObject", [x]) ? (() => {
theTarget = Array.isArray(x) ? (() => {
return [];
})() : (() => {
return {};
})();deepCopyFrom = function (target, source) {
return (() => {
return dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "keyValues", [source]).forEach(function ([key, value]) {
return (() => {
return dotDotCalc_573300145710716007(_main.dotDot_573300145710716007, Object, "isObject", [value]) ? (() => {
target[key] = Array.isArray(value) ? (() => {
return [];
})() : (() => {
return {};
})();return deepCopyFrom(target[key], value);
})() : (() => {
target[key] = value;
})();
})();
});
})();
};deepCopyFrom(theTarget, x);return theTarget;
})() : (() => {
return x;
})();
})();
};exports.isObject = isObject;
exports.isNormalObject = isNormalObject;
exports.clone = clone;
exports.keyValues = keyValues;
exports.deepAssign = deepAssign;
exports.absorb = absorb;
exports.deepAbsorb = deepAbsorb;
exports.deepClone = deepClone;