25 lines
927 B
TypeScript
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);
|
|
}
|
|
} |