UNPKG

@jsopen/objects

Version:

Helper utilities for working with JavaScript objects and arrays

45 lines (44 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isBuiltIn = isBuiltIn; exports.isConstructor = isConstructor; exports.isIterable = isIterable; exports.isAsyncIterable = isAsyncIterable; function isBuiltIn(v) { return ((v && typeof v === 'object' && (v instanceof Date || v instanceof RegExp || v instanceof Map || v instanceof Set || v instanceof WeakMap || v instanceof WeakSet || v instanceof WeakRef || v instanceof Promise || v instanceof Error || v instanceof ArrayBuffer || v instanceof Uint8Array || v instanceof Uint8ClampedArray || v instanceof Uint16Array || v instanceof Uint32Array || v instanceof BigUint64Array || v instanceof Int8Array || v instanceof Int16Array || v instanceof Int32Array || v.constructor.name === 'SharedArrayBuffer' || Buffer.isBuffer(v))) || Array.isArray(v)); } function isConstructor(fn) { return (typeof fn === 'function' && fn.prototype && fn.prototype.constructor === fn && fn.prototype.constructor.name !== 'Function' && fn.prototype.constructor.name !== 'embedded'); } function isIterable(x) { return Symbol.iterator in x; } function isAsyncIterable(x) { return Symbol.asyncIterator in x; }