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.

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