UNPKG

ts-deserializable

Version:

Decorator pattern for deserializing unverified data to an instance of a class in typescript.

32 lines (31 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("reflect-metadata"); const ATTRIBUTES_KEY = 'deserializable:attributes'; var DsAttributes; (function (DsAttributes) { function get(target) { const attributes = Reflect.getMetadata(ATTRIBUTES_KEY, target); if (attributes) { return Object.keys(attributes) .reduce((copy, key) => { copy[key] = Object.assign({}, attributes[key]); return copy; }, {}); } } DsAttributes.get = get; function set(target, attributes) { Reflect.defineMetadata(ATTRIBUTES_KEY, Object.assign({}, attributes), target); } DsAttributes.set = set; function add(target, key, type, fallback) { let attributes = get(target) || {}; attributes[key] = { type: type, fallback: fallback, }; set(target, attributes); } DsAttributes.add = add; })(DsAttributes = exports.DsAttributes || (exports.DsAttributes = {}));