Skip to content

Commit

Permalink
πŸ”„ [chore]: Automated commit
Browse files Browse the repository at this point in the history
  • Loading branch information
brunotot committed Sep 11, 2023
1 parent 6fcb2dc commit 2843fa2
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 19 deletions.
5 changes: 3 additions & 2 deletions packages/core/dev/playground.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
4 changes: 4 additions & 0 deletions packages/core/src/model/descriptor/ClassDescriptor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,13 @@ export default class ClassDescriptor<TClass = unknown>
implements IDescriptor<TClass>
{
#default: TClass;

#class: Class<TClass>;

#groups: ValidationGroup[];

#schema: Descriptors<TClass>;

#name?: string;

get name() {
Expand Down
3 changes: 3 additions & 0 deletions packages/core/src/model/descriptor/FieldDescriptor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,13 @@ export default class FieldDescriptor<FieldType>
implements IDescriptor<FieldType>
{
#rules: FieldDescriptorRules<FieldType>;

#name: string;

host?: Class<unknown>;

default?: FieldType;

class?: Class<any>;

get name(): string {
Expand Down
17 changes: 9 additions & 8 deletions packages/core/src/model/descriptor/FieldDescriptorRule.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<TFieldType>(groups: ValidationGroup[]) {
return (meta: ValidationMetadata<TFieldType>) =>
groups.length
? meta.groups.some((o) => groups.includes(o))
: !meta.groups.length;
}

export default class FieldDescriptorRule<TFieldType> {
#contents: ValidationMetadata<TFieldType>[];
Expand All @@ -20,17 +26,12 @@ export default class FieldDescriptorRule<TFieldType> {
payload: Payload<TBody>,
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()!;
}
Expand Down
9 changes: 0 additions & 9 deletions packages/core/src/utils/decorator.utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,6 @@ export function extractGroups<T extends object>(
: [];
}

export function isValidationGroupUnion(
classGroups: ValidationGroup[],
validatorGroups: ValidationGroup[]
) {
return classGroups.length
? validatorGroups.some((o) => classGroups.includes(o))
: !validatorGroups.length;
}

export function evaluateNullableValidity<T>(
object: $.Nullable<T>,
isValid: (value: T) => boolean
Expand Down

0 comments on commit 2843fa2

Please sign in to comment.