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.

92 lines (91 loc) 2.62 kB
/** * @module Utilities */ export declare const RESULT: { readonly FAILURE: "failure"; readonly SUCCESS: "success"; }; /** * * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type ResultFailure<TError = unknown> = { type: (typeof RESULT)["FAILURE"]; error: TError; }; /** * * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type ResultSuccess<TValue = unknown> = { type: (typeof RESULT)["SUCCESS"]; value: TValue; }; /** * The `Result` type represents either success or failure. * * @example * ```ts * import { Result, resultFailure, resultSuccess, RESULT } from "@daiso-tech/core/utilities"; * * function random(): Result<string, Error> { * const nbr = Math.round(Math.random() * 100); * if (nbr > 50) { * // The resultFailure function return a failed result * return resultFailure(new Error("Unexpected error occured")); * } * // The resultSuccess function return a success result * return resultSuccess("Function succeded"); * } * * const result = random(); * * // Checking for failure * if (result.type === RESULT.FAILURE) { * console.log("Error occured:", result.error); * } * * // Checking for success * if (result.type === RESULT.SUCCESS) { * console.log("Result was successful:", result.value); * } * ``` * * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type Result<TValue = unknown, TError = unknown> = ResultFailure<TError> | ResultSuccess<TValue>; /** * * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type InferResultError<TValue> = TValue extends Result ? Extract<TValue, ResultFailure>["error"] : unknown; /** * * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type InferResultSuccess<TValue> = TValue extends Result ? Extract<TValue, ResultSuccess>["value"] : TValue; /** * * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export declare function isResultFailure<TError = unknown>(value: unknown): value is ResultFailure<TError>; /** * * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export declare function isResultSuccess<TSuccess = unknown>(value: unknown): value is ResultSuccess<TSuccess>; /** * * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export declare function isResult<TValue = unknown, TError = unknown>(value: unknown): value is Result<TValue, TError>; /** * * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export declare function resultFailure<TError = unknown>(error: TError): ResultFailure<TError>; /** * * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export declare function resultSuccess<TValue>(value: TValue): ResultSuccess<TValue>;