22 lines
817 B
TypeScript
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);
|
|
}
|
|
} |