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.

50 lines (49 loc) 2.11 kB
/** * @module Utilities */ import { type NoneFunc } from "../../utilities/types/none-func.type.js"; import { type Promisable } from "../../utilities/types/promiseable.type.js"; /** * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type InvokableFn<TArgs extends Array<unknown> = Array<unknown>, TReturn = unknown> = (...args: TArgs) => TReturn; /** * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type IInvokableObject<TArgs extends Array<unknown> = Array<unknown>, TReturn = unknown> = { invoke(...args: TArgs): TReturn; }; /** * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type Invokable<TArgs extends Array<unknown> = Array<unknown>, TReturn = unknown> = InvokableFn<TArgs, TReturn> | IInvokableObject<TArgs, TReturn>; /** * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type IAsyncFactoryObject<TInput, TOutput> = IInvokableObject<[ value: TInput ], Promisable<NoneFunc<TOutput>>>; /** * @internal */ export declare function isInvokableObject<TValue, TParameters extends Array<unknown>, TReturn>(invokable: TValue | Invokable<TParameters, TReturn>): invokable is IInvokableObject<TParameters, TReturn>; /** * @internal */ export declare function isInvokableFn<TValue, TParameters extends Array<unknown>, TReturn>(invokable: TValue | Invokable<TParameters, TReturn>): invokable is InvokableFn<TParameters, TReturn>; /** * @internal */ export declare function isInvokable<TValue, TParameters extends Array<unknown>, TReturn>(invokable: TValue | Invokable<TParameters, TReturn>): invokable is Invokable<TParameters, TReturn>; /** * @internal */ export declare function resolveInvokable<TParameters extends Array<unknown>, TReturn>(invokable: Invokable<TParameters, TReturn>): InvokableFn<TParameters, TReturn>; /** * @internal */ export declare function callInvokable<TParameters extends Array<unknown>, TReturn>(invokable: Invokable<TParameters, TReturn>, ...args: TParameters): TReturn; /** * @internal */ export declare function getInvokableName<TParameters extends Array<unknown>, TReturn>(invokable: Invokable<TParameters, TReturn>): string;