import "reflect-metadata"; import { type ClassTransformOptions, plainToClassFromExist } from "class-transformer"; import { ValidatorOptions, validateOrReject } 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 hydrateArray(fromArray: Partial[], options?: ClassTransformOptions): T[] { return fromArray.map((from) => { const self: T = new (this as any); return plainToClassFromExist(self, from, options); }); } public validateOrReject?(validatorOptions?: ValidatorOptions){ return validateOrReject(this, validatorOptions); } }