From 2843fa2e1888f66dec98fdd33a672b80f88ea874 Mon Sep 17 00:00:00 2001 From: Bruno Tot Date: Mon, 11 Sep 2023 15:55:13 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=84=20[chore]:=20Automated=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/dev/playground.ts | 5 +++-- .../src/model/descriptor/ClassDescriptor.ts | 4 ++++ .../src/model/descriptor/FieldDescriptor.ts | 3 +++ .../src/model/descriptor/FieldDescriptorRule.ts | 17 +++++++++-------- packages/core/src/utils/decorator.utils.ts | 9 --------- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/core/dev/playground.ts b/packages/core/dev/playground.ts index f3573154d..325f6ec62 100644 --- a/packages/core/dev/playground.ts +++ b/packages/core/dev/playground.ts @@ -12,10 +12,11 @@ const processor = new EntityProcessor(TestClass); const res = processor.validate({ array: ["", "2", "3"], }); -console.log(res); +//console.log(res); -console.log(res.valid); +//console.log(res.valid); const meta = MetadataProcessor.inferFrom(TestClass); //console.log(meta.data); +console.log(processor.schema); debugger; diff --git a/packages/core/src/model/descriptor/ClassDescriptor.ts b/packages/core/src/model/descriptor/ClassDescriptor.ts index 65d3cccf7..686bd0322 100644 --- a/packages/core/src/model/descriptor/ClassDescriptor.ts +++ b/packages/core/src/model/descriptor/ClassDescriptor.ts @@ -21,9 +21,13 @@ export default class ClassDescriptor implements IDescriptor { #default: TClass; + #class: Class; + #groups: ValidationGroup[]; + #schema: Descriptors; + #name?: string; get name() { diff --git a/packages/core/src/model/descriptor/FieldDescriptor.ts b/packages/core/src/model/descriptor/FieldDescriptor.ts index acea2d552..bad134561 100644 --- a/packages/core/src/model/descriptor/FieldDescriptor.ts +++ b/packages/core/src/model/descriptor/FieldDescriptor.ts @@ -17,10 +17,13 @@ export default class FieldDescriptor implements IDescriptor { #rules: FieldDescriptorRules; + #name: string; + host?: Class; default?: FieldType; + class?: Class; get name(): string { diff --git a/packages/core/src/model/descriptor/FieldDescriptorRule.ts b/packages/core/src/model/descriptor/FieldDescriptorRule.ts index 0cc4d2601..6ad824bf3 100644 --- a/packages/core/src/model/descriptor/FieldDescriptorRule.ts +++ b/packages/core/src/model/descriptor/FieldDescriptorRule.ts @@ -2,7 +2,13 @@ import { ValidationGroup } from "../../decorators/types/DecoratorProps.type"; import { Payload } from "../../types/Payload.type"; import { ValidationMetadata } from "../../types/ValidationMetadata.type"; import { ValidationResult } from "../../types/ValidationResult.type"; -import { isValidationGroupUnion } from "../../utils/decorator.utils"; + +function validationGroupPredicate(groups: ValidationGroup[]) { + return (meta: ValidationMetadata) => + groups.length + ? meta.groups.some((o) => groups.includes(o)) + : !meta.groups.length; +} export default class FieldDescriptorRule { #contents: ValidationMetadata[]; @@ -20,17 +26,12 @@ export default class FieldDescriptorRule { payload: Payload, groups: ValidationGroup[] ): ValidationResult[] { - return this.validators(groups) + return this.#contents + .filter(validationGroupPredicate(groups)) .map(({ validate }) => validate(value, payload)) .filter(({ valid }) => !valid); } - validators(groups: ValidationGroup[]) { - return this.contents.filter((meta) => - isValidationGroupUnion(groups, meta.groups) - ); - } - pop() { return this.#contents.pop()!; } diff --git a/packages/core/src/utils/decorator.utils.ts b/packages/core/src/utils/decorator.utils.ts index d783e527a..e57fd791b 100644 --- a/packages/core/src/utils/decorator.utils.ts +++ b/packages/core/src/utils/decorator.utils.ts @@ -31,15 +31,6 @@ export function extractGroups( : []; } -export function isValidationGroupUnion( - classGroups: ValidationGroup[], - validatorGroups: ValidationGroup[] -) { - return classGroups.length - ? validatorGroups.some((o) => classGroups.includes(o)) - : !validatorGroups.length; -} - export function evaluateNullableValidity( object: $.Nullable, isValid: (value: T) => boolean