cdk-insights
Version:
AWS CDK security and cost analysis tool with AI-powered insights
27 lines (26 loc) • 1.98 kB
TypeScript
export type Result<T, E = Error> = Success<T> | Failure<E>;
export interface Success<T> {
readonly _tag: 'Success';
readonly value: T;
}
export interface Failure<E> {
readonly _tag: 'Failure';
readonly error: E;
}
export declare const success: <T>(value: T) => Success<T>;
export declare const failure: <E>(error: E) => Failure<E>;
export declare const isSuccess: <T, E>(result: Result<T, E>) => result is Success<T>;
export declare const isFailure: <T, E>(result: Result<T, E>) => result is Failure<E>;
export declare const map: <T, U, E>(result: Result<T, E>, transformFunction: (value: T) => U) => Result<U, E>;
export declare const mapError: <T, E, F>(result: Result<T, E>, errorTransformFunction: (error: E) => F) => Result<T, F>;
export declare const flatMap: <T, U, E>(result: Result<T, E>, bindFunction: (value: T) => Result<U, E>) => Result<U, E>;
export declare const orElse: <T, E>(result: Result<T, E>, fallbackFunction: (_error: E) => T) => T;
export declare const getOrElse: <T, E>(result: Result<T, E>, defaultValue: T) => T;
export declare const fromPromise: <T>(promise: Promise<T>) => Promise<Result<T, Error>>;
export declare const fromPromiseWithError: <T, E>(promise: Promise<T>, errorMapper: (_error: unknown) => E) => Promise<Result<T, E>>;
export declare const sequence: <T, E>(results: Result<T, E>[]) => Result<T[], E>;
export declare const sequenceAsync: <T, E>(promises: Promise<Result<T, E>>[], errorMapper: (_error: unknown) => E) => Promise<Result<T[], E>>;
export declare const validate: <T, E>(value: T, predicate: (value: T) => boolean, error: E) => Result<T, E>;
export declare const validateAsync: <T, E>(value: T, predicate: (value: T) => Promise<boolean>, error: E) => Promise<Result<T, E>>;
export declare const tap: <T, E>(result: Result<T, E>, sideEffectFunction: (_value: T) => void) => Result<T, E>;
export declare const tapError: <T, E>(result: Result<T, E>, errorSideEffectFunction: (_error: E) => void) => Result<T, E>;