UNPKG

@pashoo2/clean-architecture-boilerplate

Version:
25 lines (24 loc) 1.41 kB
import { ISerializable, ISerializer, TSerializableValue } from '../../interfaces/serialization'; import { IComparable } from '../../interfaces/comparison'; import { Constructor } from '../../interfaces/classes'; import { ICompareValues } from '../../utilities/interfaces/comparison/valuesComparisonStrategies'; import { IValidator } from '../../interfaces/validation'; export interface IMultiValuesValueObjectValue { [key: string]: TSerializableValue; [key: number]: TSerializableValue; } export interface IMultiValuesValueObjectBase<V extends IMultiValuesValueObjectValue> extends ISerializable<string>, IComparable<IMultiValuesValueObjectBase<V>> { readonly value: V; } export interface IMultipleValuesValueObjectBaseConstructor<V extends IMultiValuesValueObjectValue> extends Constructor<IMultiValuesValueObjectBase<V>, [V]> { } export interface IMultipleValuesValueObjectBaseFabricParameters<V extends IMultiValuesValueObjectValue> { compareValues: ICompareValues<V, V>; serializeValue: ISerializer<V, string>; validateValue: IValidator<V>; } export interface IMultipleValuesValueObjectBaseFabric<V extends IMultiValuesValueObjectValue> { (parameters: IMultipleValuesValueObjectBaseFabricParameters<V>): IMultipleValuesValueObjectBaseConstructor<V>; } export interface IMultiValuesValueObject<V extends IMultiValuesValueObjectValue> extends IMultiValuesValueObjectBase<V> { }