ts-deserializable
Version:
Decorator pattern for deserializing unverified data to an instance of a class in typescript.
30 lines (29 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("reflect-metadata");
const OPERATIONS_KEY = 'deserializable:operations';
var DsOperations;
(function (DsOperations) {
function get(target) {
const operations = Reflect.getMetadata(OPERATIONS_KEY, target);
if (operations) {
return Object.keys(operations)
.reduce((copy, key) => {
copy[key] = [...operations[key]];
return copy;
}, {});
}
}
DsOperations.get = get;
function set(target, operations) {
Reflect.defineMetadata(OPERATIONS_KEY, Object.assign({}, operations), target);
}
DsOperations.set = set;
function add(target, key, ops) {
let operations = get(target) || {};
operations[key] = operations[key] || [];
operations[key] = [...operations[key], ...ops];
set(target, operations);
}
DsOperations.add = add;
})(DsOperations = exports.DsOperations || (exports.DsOperations = {}));