UNPKG

@cosmicmind/domainjs

Version:

A domain-driven design framework for scalable systems.

19 lines 818 B
import { FoundationError } from '@cosmicmind/foundationjs'; export declare abstract class Value<V> { private readonly _value; get value(): V; constructor(value: V); protected prepare?(value: V): V; } export type ValueTypeFor<V> = V extends Value<infer T> ? T : V; export type ValueConstructor<V extends Value<unknown>> = new (value: ValueTypeFor<V>) => V; export declare class ValueError extends FoundationError { } export type ValueLifecycle<V> = { created?(vo: V): void; trace?(vo: V): void; validator?(value: ValueTypeFor<V>, vo: V): boolean | never; error?(error: ValueError): void; }; export declare const defineValue: <V extends Value<ValueTypeFor<V>>>(_class: ValueConstructor<V>, handler?: ValueLifecycle<V>) => (value: ValueTypeFor<V>) => V; //# sourceMappingURL=Value.d.ts.map