helene
Version:
Real-time Web Apps for Node.js
58 lines • 2.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isObjectAndNotNull = exports.newBinary = exports.quote = exports.handleError = exports.checkError = exports.isInfOrNaN = exports.isArguments = exports.convertMapToObject = exports.hasOwn = exports.lengthOf = exports.keysOf = exports.isObject = exports.isFunction = void 0;
const isFunction = fn => typeof fn === 'function';
exports.isFunction = isFunction;
const isObject = fn => typeof fn === 'object';
exports.isObject = isObject;
const keysOf = obj => Object.keys(obj);
exports.keysOf = keysOf;
const lengthOf = obj => Object.keys(obj).length;
exports.lengthOf = lengthOf;
const hasOwn = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
exports.hasOwn = hasOwn;
const convertMapToObject = map => Array.from(map).reduce((acc, [key, value]) => {
// reassign to not create new object
acc[key] = value;
return acc;
}, {});
exports.convertMapToObject = convertMapToObject;
const isArguments = obj => obj != null && (0, exports.hasOwn)(obj, 'callee');
exports.isArguments = isArguments;
const isInfOrNaN = obj => Number.isNaN(obj) || obj === Infinity || obj === -Infinity;
exports.isInfOrNaN = isInfOrNaN;
exports.checkError = {
maxStack: msgError => new RegExp('Maximum call stack size exceeded', 'g').test(msgError),
};
const handleError = fn => function (...args) {
try {
return fn.apply(this, args);
}
catch (error) {
const isMaxStack = exports.checkError.maxStack(error.message);
if (isMaxStack) {
throw new Error('Converting circular structure to JSON');
}
throw error;
}
};
exports.handleError = handleError;
const quote = string => {
return JSON.stringify(string);
};
exports.quote = quote;
const newBinary = (len) => {
if (typeof Uint8Array === 'undefined' || typeof ArrayBuffer === 'undefined') {
const ret = [];
for (let i = 0; i < len; i++) {
ret.push(0);
}
ret.$Uint8ArrayPolyfill = true;
return ret;
}
return new Uint8Array(new ArrayBuffer(len));
};
exports.newBinary = newBinary;
const isObjectAndNotNull = obj => obj !== null && typeof obj === 'object';
exports.isObjectAndNotNull = isObjectAndNotNull;
//# sourceMappingURL=utils.js.map