Skip to content

Commit 399f40f

Browse files
committed
Merge branch 'release/0.7.5'
2 parents 9453f0f + 9247952 commit 399f40f

File tree

3 files changed

+13
-15
lines changed

3 files changed

+13
-15
lines changed

lib/index.ts

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,17 @@ export function validate<T>(arg: any, assertion: (arg: any) => ValidationResult<
4141
);
4242
}
4343

44-
45-
export function extendValidator<T,U>(validator1: Validator<T>, validator2: Validator<U>): Validator<T & U> {
46-
const result: any = {};
47-
48-
for (const key in validator1) {
49-
result[key] = validator1[key];
50-
}
51-
52-
for (const key in validator2) {
53-
result[key] = validator2[key];
54-
}
55-
56-
return result as Validator<T & U>;
44+
export function extendValidator<A,B>(validator1: Validator<A>, validator2: Validator<B>): Validator<A & B>;
45+
export function extendValidator<A,B,C>(validator1: Validator<A>, validator2: Validator<B>, validator3: Validator<C>): Validator<A & B & C>;
46+
export function extendValidator<A,B,C,D>(validator1: Validator<A>, validator2: Validator<B>, validator3: Validator<C>, validator4: Validator<D>): Validator<A & B & C & D>;
47+
export function extendValidator<A,B,C,D,E>(validator1: Validator<A>, validator2: Validator<B>, validator3: Validator<C>, validator4: Validator<D>, validator5: Validator<E>): Validator<A & B & C & D & E>;
48+
export function extendValidator<A,B,C,D,E,F>(validator1: Validator<A>, validator2: Validator<B>, validator3: Validator<C>, validator4: Validator<D>, validator5: Validator<E>, validator6: Validator<F>): Validator<A & B & C & D & E & F>;
49+
export function extendValidator<A,B,C,D,E,F,G>(validator1: Validator<A>, validator2: Validator<B>, validator3: Validator<C>, validator4: Validator<D>, validator5: Validator<E>, validator6: Validator<F>, validator7: Validator<G>): Validator<A & B & C & D & E & F & G>;
50+
export function extendValidator<A,B,C,D,E,F,G,H>(validator1: Validator<A>, validator2: Validator<B>, validator3: Validator<C>, validator4: Validator<D>, validator5: Validator<E>, validator6: Validator<F>, validator7: Validator<G>, validator8: Validator<H>): Validator<A & B & C & D & E & F & G & H>;
51+
export function extendValidator<A,B,C,D,E,F,G,H,I>(validator1: Validator<A>, validator2: Validator<B>, validator3: Validator<C>, validator4: Validator<D>, validator5: Validator<E>, validator6: Validator<F>, validator7: Validator<G>, validator8: Validator<H>, validator9: Validator<I>): Validator<A & B & C & D & E & F & G & H & I>;
52+
export function extendValidator<A,B,C,D,E,F,G,H,I,J>(validator1: Validator<A>, validator2: Validator<B>, validator3: Validator<C>, validator4: Validator<D>, validator5: Validator<E>, validator6: Validator<F>, validator7: Validator<G>, validator8: Validator<H>, validator9: Validator<I>, validator10: Validator<J>): Validator<A & B & C & D & E & F & G & H & I & J>;
53+
export function extendValidator(...validators: Validator<any>[]): Validator<any> {
54+
return validators.reduce((validator, currentValidator) => ({...validator, ...currentValidator}), {} as Validator<any>);
5755
}
5856

5957

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "typed-validation",
3-
"version": "0.7.4",
3+
"version": "0.7.5",
44
"description": "Validate Objects Against TypeScript Interfaces",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

0 commit comments

Comments
 (0)