payload-is
Version:
A comprehensive TypeScript/JavaScript type checking library providing functions to check data types, collections, primitives, and built-in objects
16 lines (13 loc) • 444 B
text/typescript
import { isFunction } from "./function.ts";
import { isObject } from "./object.ts";
import { getTag } from "./type.ts";
// promise
export function isPromise(payload: unknown): payload is Promise<any> {
return getTag(payload) === "Promise";
}
export function isPromiseLike(payload: unknown): payload is PromiseLike<any> {
return (
(isObject(payload) || isFunction(payload)) &&
isFunction((payload as PromiseLike<any>).then)
);
}