API reference › @evolu/common › Types › isPromiseLike
function isPromiseLike<T>(value: Awaitable<T>): value is PromiseLike<T>;
Defined in: packages/common/src/Types.ts:412
Type guard to check if a value is a PromiseLike.
Use with Awaitable to conditionally await only when necessary,
avoiding microtask overhead for synchronous values.
Conditional awaiting
import { assertTrue, isPromiseLike, type Awaitable } from "@evolu/common";
const cache = new Map([["cached", true]]);
const validate = (id: string): Awaitable<boolean> =>
cache.get(id) ?? Promise.resolve(false);
const result = validate("cached");
const isValid = isPromiseLike(result) ? await result : result;
assertTrue(isValid);