import { ValidationSchemas } from '~/domain'; export class SchemaFactoryAdapter { constructor(public readonly make: (partial?: Partial>) => ValidationSchemas) {} spread = (type: T, rules?: ValidationSchemas.Rules) => { return this.make({ type, rules }); }; withDefault = (defaultValues: Partial>) => { return (partial: Partial>): ValidationSchemas => { const schema = this.make({ ...defaultValues, ...partial }); return schema as any; }; }; focusType = (type: T): ValidationSchemas => { const schema = this.make({ type }); return schema as any; }; }