UNPKG

prex

Version:

Async coordination primitives and extensions on top of ES6 Promises

68 lines (66 loc) 2.28 kB
"use strict"; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Licensed under the Apache License, Version 2.0. See LICENSE file in the project root for details. ***************************************************************************** */ Object.defineProperty(exports, "__esModule", { value: true }); require("./asyncIterable"); function isTypeOf(value, typeTag, optional) { return isMissing(value) ? optional : typeof value === typeTag; } /*@internal*/ function isMissing(value) { return value === null || value === undefined; } exports.isMissing = isMissing; /*@internal*/ function isString(value, optional = false) { return isTypeOf(value, "string", optional); } exports.isString = isString; /*@internal*/ function isNumber(value, optional = false) { return isTypeOf(value, "number", optional); } exports.isNumber = isNumber; /*@internal*/ function isBoolean(value, optional = false) { return isTypeOf(value, "boolean", optional); } exports.isBoolean = isBoolean; /*@internal*/ function isSymbol(value, optional = false) { return isTypeOf(value, "symbol", optional); } exports.isSymbol = isSymbol; /*@internal*/ function isFunction(value, optional = false) { return isTypeOf(value, "function", optional); } exports.isFunction = isFunction; /*@internal*/ function isObject(value, optional = false) { return isTypeOf(value, "object", optional); } exports.isObject = isObject; /*@internal*/ function isInstance(value, constructor, optional = false) { return isMissing(value) ? optional : value instanceof constructor; } exports.isInstance = isInstance; /*@internal*/ function isIterable(value, optional = false) { return isMissing(value) ? optional : isObject(value) && isFunction(value[Symbol.iterator]); } exports.isIterable = isIterable; /*@internal*/ function isAsyncIterable(value, optional = false) { return isMissing(value) ? optional : isObject(value) && isFunction(value[Symbol.asyncIterator]); } exports.isAsyncIterable = isAsyncIterable; /*@internal*/ function isPromiseLike(value) { return isObject(value) && isFunction(value.then); } exports.isPromiseLike = isPromiseLike;