diff --git a/dist/Resource.d.ts b/dist/Resource.d.ts index b8a96d0..fad1b62 100644 --- a/dist/Resource.d.ts +++ b/dist/Resource.d.ts @@ -3,9 +3,6 @@ import { type ClassTransformOptions } from "class-transformer"; import { ValidatorOptions } from "class-validator"; export default class Resource { static hydrate(from: Partial, options?: ClassTransformOptions): T; - static hydrateArray(ClassEntity: { - new (): T; - }, fromArray: T[], options?: ClassTransformOptions): T[]; - static validateOrReject(validatorOptions?: ValidatorOptions): Promise; + static hydrateArray(fromArray: Partial[], options?: ClassTransformOptions): T[]; validateOrReject?(validatorOptions?: ValidatorOptions): Promise; } diff --git a/dist/Resource.js b/dist/Resource.js index f95451f..0f1231e 100644 --- a/dist/Resource.js +++ b/dist/Resource.js @@ -1,26 +1,21 @@ "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", { value: true }); require("reflect-metadata"); const class_transformer_1 = require("class-transformer"); -const class_validator_1 = __importDefault(require("class-validator")); +const class_validator_1 = require("class-validator"); class Resource { static hydrate(from, options) { const self = new this; return (0, class_transformer_1.plainToClassFromExist)(self, from, options); } - static hydrateArray(ClassEntity, fromArray, options) { + static hydrateArray(fromArray, options) { 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) { - return class_validator_1.default.validateOrReject(this, validatorOptions); + return (0, class_validator_1.validateOrReject)(this, validatorOptions); } } exports.default = Resource; diff --git a/src/Resource.ts b/src/Resource.ts index dee4df3..616221a 100644 --- a/src/Resource.ts +++ b/src/Resource.ts @@ -1,6 +1,6 @@ import "reflect-metadata"; -import { type ClassTransformOptions, plainToClassFromExist, plainToInstance } from "class-transformer"; -import validator, { ValidatorOptions } from "class-validator"; +import { type ClassTransformOptions, plainToClassFromExist } from "class-transformer"; +import { ValidatorOptions, validateOrReject } from "class-validator"; export default class Resource { @@ -9,17 +9,14 @@ export default class Resource { return plainToClassFromExist(self, from, options); } - public static hydrateArray(ClassEntity: { new (): T }, fromArray: T[], options?: ClassTransformOptions): T[] { + public static hydrateArray(fromArray: Partial[], options?: ClassTransformOptions): T[] { 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){ - return validator.validateOrReject(this, validatorOptions); + return validateOrReject(this, validatorOptions); } } \ No newline at end of file