prex-es5
Version:
Async coordination primitives and extensions on top of ES6 Promises
46 lines (43 loc) • 1.73 kB
JavaScript
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Licensed under the Apache License, Version 2.0.
See LICENSE file in the project root for details.
***************************************************************************** */
import "./asyncIterable";
function isTypeOf(value, typeTag, optional) {
return isMissing(value) ? optional : typeof value === typeTag;
}
export function isMissing(value) {
return value === null || value === undefined;
}
export function isString(value, optional = false) {
return isTypeOf(value, "string", optional);
}
export function isNumber(value, optional = false) {
return isTypeOf(value, "number", optional);
}
export function isBoolean(value, optional = false) {
return isTypeOf(value, "boolean", optional);
}
export function isSymbol(value, optional = false) {
return isTypeOf(value, "symbol", optional);
}
export function isFunction(value, optional = false) {
return isTypeOf(value, "function", optional);
}
export function isObject(value, optional = false) {
return isTypeOf(value, "object", optional);
}
export function isInstance(value, constructor, optional = false) {
return isMissing(value) ? optional : value instanceof constructor;
}
export function isIterable(value, optional = false) {
return isMissing(value) ? optional : isObject(value) && isFunction(value[Symbol.iterator]);
}
export function isAsyncIterable(value, optional = false) {
return isMissing(value) ? optional : isObject(value) && isFunction(value[Symbol.asyncIterator]);
}
export function isPromiseLike(value) {
return isObject(value) && isFunction(value.then);
}
//# sourceMappingURL=utils.js.map