@enonic/js-utils
Version:
Enonic XP JavaScript Utils
137 lines (136 loc) • 4.58 kB
JavaScript
;
function _type_of(obj) {
"@swc/helpers - typeof";
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
}
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = function(target, all) {
for(var name in all)__defProp(target, name, {
get: all[name],
enumerable: true
});
};
var __copyProps = function(to, from, except, desc) {
if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
try {
var _loop = function() {
var key = _step.value;
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
get: function() {
return from[key];
},
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
};
for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally{
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally{
if (_didIteratorError) {
throw _iteratorError;
}
}
}
}
return to;
};
var __toCommonJS = function(mod) {
return __copyProps(__defProp({}, "__esModule", {
value: true
}), mod);
};
// storage/indexing/enonify.ts
var enonify_exports = {};
__export(enonify_exports, {
enonify: function() {
return enonify;
}
});
module.exports = __toCommonJS(enonify_exports);
// array/flatten.ts
function flatten(arr) {
var d = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1;
return d > 0 ? arr.reduce(function(acc, val) {
return acc.concat(Array.isArray(val) ? flatten(val, d - 1) : val);
}, []) : arr.slice();
}
// value/isDate.ts
function isDate(value) {
return Object.prototype.toString.call(value).slice(8, -1) === "Date";
}
// value/isFunction.ts
function isFunction(value) {
return Object.prototype.toString.call(value).slice(8, -1) === "Function";
}
// value/isInfinity.ts
function isInfinity(value) {
return typeof value === "number" && !isFinite(value);
}
// value/isObject.ts
var isObject = function(value) {
return Object.prototype.toString.call(value).slice(8, -1) === "Object";
};
// storage/indexing/enonify.ts
function enonify(unknown) {
function shouldBeDeleted(unknown2) {
return unknown2 === null || typeof unknown2 === "undefined" || isFunction(unknown2) || isInfinity(unknown2) || isNumberButNaN(unknown2);
}
function enonifyArray(array) {
var flattenedAndEnonified = flatten(array).map(function(v) {
return enonify(v);
}).filter(function(v) {
return !shouldBeDeleted(v);
});
if (flattenedAndEnonified.length === 0) {
return void 0;
}
if (flattenedAndEnonified.length === 1) {
return flattenedAndEnonified[0];
}
return flattenedAndEnonified;
}
function isNumberButNaN(unknown2) {
return typeof unknown2 === "number" && isNaN(unknown2);
}
if (isObject(unknown)) {
Object.keys(unknown).forEach(function(k) {
var value = unknown[k];
if (Array.isArray(value)) {
value = enonifyArray(value);
}
if (Array.isArray(value)) {
unknown[k] = value;
} else {
if (shouldBeDeleted(value)) {
delete unknown[k];
} else {
unknown[k] = enonify(value);
}
}
});
return unknown;
}
if (Array.isArray(unknown)) {
return enonifyArray(unknown);
}
if (isDate(unknown)) {
return unknown.toISOString();
}
if (isNumberButNaN(unknown)) {
return void 0;
}
if (isInfinity(unknown)) {
return void 0;
}
return unknown;
}