UNPKG

@tsed/common

Version:
65 lines 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConverterService = void 0; const tslib_1 = require("tslib"); const core_1 = require("@tsed/core"); const di_1 = require("@tsed/di"); const json_mapper_1 = require("@tsed/json-mapper"); /** * @ignore * @param args */ function mapDeserializeOptions(args) { if (args.length >= 2) { const [targetType, baseType, options = {}] = args; return { ...options, type: baseType || targetType, collectionType: core_1.isCollection(targetType) ? targetType : undefined, additionalProperties: options.additionalProperties === "accept" }; } if (args.length === 1) { if (core_1.classOf(args[0]) !== Object) { return { type: args[0] }; } return args[0]; } return {}; } let ConverterService = class ConverterService { constructor(injectorService, configuration) { this.injectorService = injectorService; this.converterSettings = configuration.get("converter") || {}; } serialize(obj, options = {}) { return json_mapper_1.serialize(obj, { useAlias: true, additionalProperties: this.converterSettings.additionalProperties === "accept", ...options }); } /** * @deprecated Since v6. Use classToPlainObject from @tsed/json-mapper instead */ serializeClass(obj, options = {}) { return json_mapper_1.classToPlainObject(obj, options); } deserialize(obj, ...args) { const options = { useAlias: true, additionalProperties: this.converterSettings.additionalProperties === "accept", ...mapDeserializeOptions(args) }; return json_mapper_1.deserialize(obj, options); } }; ConverterService = tslib_1.__decorate([ di_1.Injectable(), tslib_1.__param(1, di_1.Configuration()), tslib_1.__metadata("design:paramtypes", [di_1.InjectorService, Object]) ], ConverterService); exports.ConverterService = ConverterService; //# sourceMappingURL=ConverterService.js.map