From e7714a439eccc3ded7b28b2a22bcbbc5efa9bcc2 Mon Sep 17 00:00:00 2001 From: Mathias Vestergaard Date: Tue, 28 Jan 2020 20:35:55 +0100 Subject: [PATCH] Revert "yup: required is not nullable (#41789)" (#41890) This reverts commit 0a32b87d146dc3efe1ef47e82e0b02bf89248b5a. Co-authored-by: ekfn --- types/yup/index.d.ts | 14 +++++++------- types/yup/yup-tests.ts | 39 ++++++++++----------------------------- 2 files changed, 17 insertions(+), 36 deletions(-) diff --git a/types/yup/index.d.ts b/types/yup/index.d.ts index 4a480eed0d..aabeb3443e 100644 --- a/types/yup/index.d.ts +++ b/types/yup/index.d.ts @@ -93,7 +93,7 @@ export interface MixedSchema extends Schema { nullable(isNullable?: true): MixedSchema; nullable(isNullable: false): MixedSchema>; nullable(isNullable?: boolean): MixedSchema; - required(message?: TestOptionsMessage): MixedSchema>; + required(message?: TestOptionsMessage): MixedSchema>; notRequired(): MixedSchema; concat(schema: this): this; concat(schema: MixedSchema): MixedSchema; @@ -123,7 +123,7 @@ export interface StringSchema exte nullable(isNullable?: true): StringSchema; nullable(isNullable: false): StringSchema>; nullable(isNullable?: boolean): StringSchema; - required(message?: TestOptionsMessage): StringSchema>; + required(message?: TestOptionsMessage): StringSchema>; notRequired(): StringSchema; } @@ -145,7 +145,7 @@ export interface NumberSchema exte nullable(isNullable?: true): NumberSchema; nullable(isNullable: false): NumberSchema>; nullable(isNullable?: boolean): NumberSchema; - required(message?: TestOptionsMessage): NumberSchema>; + required(message?: TestOptionsMessage): NumberSchema>; notRequired(): NumberSchema; } @@ -158,7 +158,7 @@ export interface BooleanSchema e nullable(isNullable?: true): BooleanSchema; nullable(isNullable: false): BooleanSchema>; nullable(isNullable?: boolean): BooleanSchema; - required(message?: TestOptionsMessage): BooleanSchema>; + required(message?: TestOptionsMessage): BooleanSchema>; notRequired(): BooleanSchema; } @@ -173,7 +173,7 @@ export interface DateSchema extends Sc nullable(isNullable?: true): DateSchema; nullable(isNullable: false): DateSchema>; nullable(isNullable?: boolean): DateSchema; - required(message?: TestOptionsMessage): DateSchema>; + required(message?: TestOptionsMessage): DateSchema>; notRequired(): DateSchema; } @@ -258,7 +258,7 @@ export interface ObjectSchema exte nullable(isNullable?: true): ObjectSchema; nullable(isNullable: false): ObjectSchema>; nullable(isNullable?: boolean): ObjectSchema; - required(message?: TestOptionsMessage): ObjectSchema>; + required(message?: TestOptionsMessage): ObjectSchema>; notRequired(): ObjectSchema; concat(schema: this): this; concat(schema: ObjectSchema): ObjectSchema; @@ -291,7 +291,7 @@ export interface TestContext { parent: any; schema: Schema; resolve: (value: any) => any; - createError: (params?: { path?: string; message?: string; params?: object }) => ValidationError; + createError: (params?: { path?: string; message?: string, params?: object }) => ValidationError; } export interface ValidateOptions { diff --git a/types/yup/yup-tests.ts b/types/yup/yup-tests.ts index 3c2808e7a8..f1b2898749 100644 --- a/types/yup/yup-tests.ts +++ b/types/yup/yup-tests.ts @@ -636,7 +636,8 @@ const definitionBC: yup.ObjectSchemaDefinition = { }; const combinedSchema = yup.object(definitionAB).shape(definitionBC); // $ExpectType ObjectSchema> -const schemaWithoutNumberField = { +// $ExpectError +yup.object({ stringField: yup.string().required(), subFields: yup .object({ @@ -644,13 +645,10 @@ const schemaWithoutNumberField = { }) .required(), arrayField: yup.array(yup.string()).required(), -}; +}); // $ExpectError -yup.object(schemaWithoutNumberField); - -const schemaWithWrongType = { - stringField: yup.number().required(), +yup.object({ stringField: yup.number().required(), numberField: yup.number().required(), subFields: yup .object({ @@ -658,22 +656,17 @@ const schemaWithWrongType = { }) .required(), arrayField: yup.array(yup.string()).required(), -}; +}); // $ExpectError -yup.object(schemaWithWrongType); - -const schemaWithoutSubtype = { +yup.object({ stringField: yup.string().required(), numberField: yup.number().required(), arrayField: yup.array(yup.string()).required(), -}; +}); // $ExpectError -yup.object(schemaWithoutSubtype); - -const schemaWithWrongSubtype = { - subFields: yup +yup.object({ subFields: yup .object({ testField: yup.number().required(), }) @@ -681,10 +674,7 @@ const schemaWithWrongSubtype = { stringField: yup.string().required(), numberField: yup.number().required(), arrayField: yup.array(yup.string()).required(), -}; - -// $ExpectError -yup.object(schemaWithWrongSubtype); +}); enum Gender { Male = 'Male', @@ -704,13 +694,7 @@ const personSchema = yup.object({ .nullable() .notRequired() .min(new Date(1900, 0, 1)), - // $ExpectType StringSchema - canBeNull: yup.string().nullable(true), - // $ExpectType StringSchema - requiredNullable: yup - .string() - .nullable() - .required(), + canBeNull: yup.string().nullable(true), // $ExpectType StringSchema isAlive: yup .boolean() .nullable() @@ -736,7 +720,6 @@ type Person = yup.InferType; // email?: string | null | undefined; // birthDate?: Date | null | undefined; // canBeNull: string | null; -// requiredNullable: string; // isAlive: boolean | null | undefined; // mustBeAString: string; // children?: string[] | null | undefined; @@ -746,7 +729,6 @@ const minimalPerson: Person = { firstName: '', gender: Gender.Female, canBeNull: null, - requiredNullable: '', mustBeAString: '', }; @@ -756,7 +738,6 @@ const person: Person = { email: null, birthDate: null, canBeNull: null, - requiredNullable: '', isAlive: null, mustBeAString: '', children: null,