@lucaspaganini/value-objects
Version:
TypeScript first validation and class creation library
10 lines (9 loc) • 724 B
TypeScript
import { Either } from '../utils';
import { ValueObjectContructor, VOCRawInit } from './value-object';
export declare const makeIsValidRawInit: <VOC extends ValueObjectContructor<any, any>>(VO: VOC) => (v: any) => v is VOCRawInit<VOC>;
export declare const makeFromRawInit: <VOC extends ValueObjectContructor<any, any>>(VO: VOC) => (data: VOCRawInit<VOC>) => Either<Error[], InstanceType<VOC>>;
export interface ValueObjectFunctions<VOC extends ValueObjectContructor> {
isValidRawInit(v: any): v is VOCRawInit<VOC>;
fromRawInit(data: VOCRawInit<VOC>): Either<Array<Error>, InstanceType<VOC>>;
}
export declare const makeFunctions: <VOC extends ValueObjectContructor<any, any>>(VO: VOC) => ValueObjectFunctions<VOC>;