lecoffre-ressources/src/Resource.ts
2023-05-10 18:10:38 +02:00

25 lines
927 B
TypeScript

import "reflect-metadata";
import { type ClassTransformOptions, plainToClassFromExist, plainToInstance } from "class-transformer";
import validator, { ValidatorOptions } from "class-validator";
export default class Resource {
public static hydrate<T extends Resource>(from: Partial<T>, options?: ClassTransformOptions) : T {
const self: T = new (this as any);
return plainToClassFromExist(self, from, options);
}
public static map<T = {}>(ClassEntity: { new (): T }, fromArray: T[], options?: ClassTransformOptions): T[] {
return fromArray.map((from) => {
return plainToInstance(ClassEntity, from, options);
});
}
public static validateOrReject(validatorOptions?: ValidatorOptions){
return validator.validateOrReject(this, validatorOptions);
}
public validateOrReject?(validatorOptions?: ValidatorOptions){
return validator.validateOrReject(this, validatorOptions);
}
}