@jsopen/objects
Version:
Helper utilities for working with JavaScript objects and arrays
39 lines (38 loc) • 1.28 kB
JavaScript
export 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));
}
export function isConstructor(fn) {
return (typeof fn === 'function' &&
fn.prototype &&
fn.prototype.constructor === fn &&
fn.prototype.constructor.name !== 'Function' &&
fn.prototype.constructor.name !== 'embedded');
}
export function isIterable(x) {
return Symbol.iterator in x;
}
export function isAsyncIterable(x) {
return Symbol.asyncIterator in x;
}