🐛 Fixing hydrate

This commit is contained in:
Maxime Lalo 2023-05-15 16:08:44 +02:00
parent f90ab464e3
commit e056bd8b8c
3 changed files with 12 additions and 23 deletions

5
dist/Resource.d.ts vendored
View File

@ -3,9 +3,6 @@ import { type ClassTransformOptions } from "class-transformer";
import { ValidatorOptions } from "class-validator"; import { ValidatorOptions } from "class-validator";
export default class Resource { export default class Resource {
static hydrate<T extends Resource>(from: Partial<T>, options?: ClassTransformOptions): T; static hydrate<T extends Resource>(from: Partial<T>, options?: ClassTransformOptions): T;
static hydrateArray<T = {}>(ClassEntity: { static hydrateArray<T extends Resource>(fromArray: Partial<T>[], options?: ClassTransformOptions): T[];
new (): T;
}, fromArray: T[], options?: ClassTransformOptions): T[];
static validateOrReject(validatorOptions?: ValidatorOptions): Promise<void>;
validateOrReject?(validatorOptions?: ValidatorOptions): Promise<void>; validateOrReject?(validatorOptions?: ValidatorOptions): Promise<void>;
} }

15
dist/Resource.js vendored
View File

@ -1,26 +1,21 @@
"use strict"; "use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
require("reflect-metadata"); require("reflect-metadata");
const class_transformer_1 = require("class-transformer"); const class_transformer_1 = require("class-transformer");
const class_validator_1 = __importDefault(require("class-validator")); const class_validator_1 = require("class-validator");
class Resource { class Resource {
static hydrate(from, options) { static hydrate(from, options) {
const self = new this; const self = new this;
return (0, class_transformer_1.plainToClassFromExist)(self, from, options); return (0, class_transformer_1.plainToClassFromExist)(self, from, options);
} }
static hydrateArray(ClassEntity, fromArray, options) { static hydrateArray(fromArray, options) {
return fromArray.map((from) => { return fromArray.map((from) => {
return (0, class_transformer_1.plainToInstance)(ClassEntity, from, options); const self = new this;
return (0, class_transformer_1.plainToClassFromExist)(self, from, options);
}); });
} }
static validateOrReject(validatorOptions) {
return class_validator_1.default.validateOrReject(this, validatorOptions);
}
validateOrReject(validatorOptions) { validateOrReject(validatorOptions) {
return class_validator_1.default.validateOrReject(this, validatorOptions); return (0, class_validator_1.validateOrReject)(this, validatorOptions);
} }
} }
exports.default = Resource; exports.default = Resource;

View File

@ -1,6 +1,6 @@
import "reflect-metadata"; import "reflect-metadata";
import { type ClassTransformOptions, plainToClassFromExist, plainToInstance } from "class-transformer"; import { type ClassTransformOptions, plainToClassFromExist } from "class-transformer";
import validator, { ValidatorOptions } from "class-validator"; import { ValidatorOptions, validateOrReject } from "class-validator";
export default class Resource { export default class Resource {
@ -9,17 +9,14 @@ export default class Resource {
return plainToClassFromExist(self, from, options); return plainToClassFromExist(self, from, options);
} }
public static hydrateArray<T = {}>(ClassEntity: { new (): T }, fromArray: T[], options?: ClassTransformOptions): T[] { public static hydrateArray<T extends Resource>(fromArray: Partial<T>[], options?: ClassTransformOptions): T[] {
return fromArray.map((from) => { return fromArray.map((from) => {
return plainToInstance(ClassEntity, from, options); const self: T = new (this as any);
return plainToClassFromExist(self, from, options);
}); });
} }
public static validateOrReject(validatorOptions?: ValidatorOptions){
return validator.validateOrReject(this, validatorOptions);
}
public validateOrReject?(validatorOptions?: ValidatorOptions){ public validateOrReject?(validatorOptions?: ValidatorOptions){
return validator.validateOrReject(this, validatorOptions); return validateOrReject(this, validatorOptions);
} }
} }