@tsed/common
Version:
A TypeScript Framework on top of Express
65 lines • 2.16 kB
JavaScript
;
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