UNPKG

@triviality/serializer

Version:
37 lines 1.31 kB
"use strict"; 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