UNPKG

@daiso-tech/core

Version:

The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.

56 lines 1.35 kB
/** * @module Utilities */ import {} from "../../task/contracts/_module.js"; import { isInvokable, resolveInvokable, } from "../../utilities/functions/invokable.js"; import {} from "../../utilities/types/promiseable.type.js"; /** * @internal */ export function isLazy(lazyable) { return isInvokable(lazyable); } /** * @internal */ export function isPromiseLike(value) { return (typeof value === "object" && // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access typeof value?.then === "function"); } /** * @internal */ export function isITask(lazyable) { return (isPromiseLike(lazyable) && // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access typeof lazyable?.defer === "function"); } /** * @internal */ export function isAsyncLazy(lazyable) { return isInvokable(lazyable) || isITask(lazyable); } /** * @internal */ export function resolveLazyable(lazyable) { if (isLazy(lazyable)) { return resolveInvokable(lazyable)(); } return lazyable; } /** * @internal */ export async function resolveAsyncLazyable(lazyable) { if (isAsyncLazy(lazyable)) { if (isITask(lazyable)) { return await lazyable; } return await resolveInvokable(lazyable)(); } return lazyable; } //# sourceMappingURL=lazy.js.map