@triviality/serializer
Version:
Typescript serializer with an interface
37 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("reflect-metadata");
var Metadata_1 = require("./Metadata");
var SERIALIZER = Symbol.for('serializer');
function getSerializerMetadata(constructor) {
var metadata = Metadata_1.Metadata.getMetadata(SERIALIZER, constructor);
if (metadata) {
return metadata;
}
var parent = Object.getPrototypeOf(constructor.prototype).constructor;
if (parent === Object) {
return {};
}
return Object.assign({}, getSerializerMetadata(parent));
}
exports.getSerializerMetadata = getSerializerMetadata;
/**
* Decorator function for object to normalize it.
*/
function Normalize(target, functionName) {
var constructor = target.constructor;
var metadata = getSerializerMetadata(constructor);
metadata.normalize = functionName;
Metadata_1.Metadata.defineMetadata(SERIALIZER, metadata, constructor);
}
exports.Normalize = Normalize;
/**
* Decorator static function to de-normalize it.
*/
function DeNormalize(constructor, functionName) {
var metadata = getSerializerMetadata(constructor);
metadata.deNormalize = functionName;
Metadata_1.Metadata.defineMetadata(SERIALIZER, metadata, constructor);
}
exports.DeNormalize = DeNormalize;
//# sourceMappingURL=Serializeable.js.map