@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
45 lines (44 loc) • 1.92 kB
TypeScript
import { Construct, Constructor } from './Constructor';
import { Validatable } from './Validatable';
import { Get } from './Get';
import { Func } from './Func';
import { Optional } from './Types';
export declare abstract class Try<T = unknown> implements Validatable {
is: {
defined: (prop?: Func<unknown, T>) => Try<T>;
empty: (prop?: Func<unknown, T>) => Try<T>;
valid: (prop?: Func<unknown, T>) => Try<T>;
true: (prop?: Func<unknown, T>) => Try<T>;
false: (prop?: Func<unknown, T>) => Try<T>;
not: {
defined: (prop?: Func<unknown, T>) => Try<T>;
empty: (prop?: Func<unknown, T>) => Try<T>;
valid: (prop?: Func<unknown, T>) => Try<T>;
};
};
if: {
defined: (prop?: Func<unknown, T>) => Try<T>;
empty: (prop?: Func<unknown, T>) => Try<T>;
valid: (prop?: Func<unknown, T>) => Try<T>;
true: (prop?: Func<unknown, T>) => Try<T>;
false: (prop?: Func<unknown, T>) => Try<T>;
not: {
defined: (prop?: Func<unknown, T>) => Try<T>;
empty: (prop?: Func<unknown, T>) => Try<T>;
valid: (prop?: Func<unknown, T>) => Try<T>;
};
};
abstract get value(): T;
abstract get error(): Error;
abstract get isValid(): boolean;
static of: <T_1>(c: Get<T_1 | Try<T_1>>, ...args: unknown[]) => Try<T_1>;
abstract map<U>(f: Func<U | Try<U>, T>): Try<U>;
abstract recover(f: Func<T | Try<T>, Error>): Try<T>;
abstract recoverFrom(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T>;
abstract accept(f: Func<void, T>): Try<T>;
abstract filter(predicate: Func<boolean, T>): Try<T>;
abstract or(value: Get<T>): T;
abstract orElse(value?: Get<T>): Optional<T>;
abstract orThrow(error: Construct<Error>): T;
}
export declare const tryTo: <T>(c: Get<T | Try<T>>, ...args: unknown[]) => Try<T>;