import "reflect-metadata"; import { type ClassTransformOptions, plainToClassFromExist, plainToInstance } from "class-transformer"; import validator, { ValidatorOptions } from "class-validator"; export default class Resource { public static hydrate(from: Partial, options?: ClassTransformOptions) : T { const self: T = new (this as any); return plainToClassFromExist(self, from, options); } public static map(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); } }