lecoffre-ressources/src/Resource.ts
2023-05-15 16:08:44 +02:00

22 lines
817 B
TypeScript

import "reflect-metadata";
import { type ClassTransformOptions, plainToClassFromExist } from "class-transformer";
import { ValidatorOptions, validateOrReject } 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 hydrateArray<T extends Resource>(fromArray: Partial<T>[], 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);
}
}