@bargain/core
Version:
A simple TypeScript decorator-based library for serializing and deserializing data.
3 lines (2 loc) • 2.07 kB
JavaScript
function r(){return(r=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}function e(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function t(r,t){var n;if("undefined"==typeof Symbol||null==r[Symbol.iterator]){if(Array.isArray(r)||(n=function(r,t){if(r){if("string"==typeof r)return e(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);return"Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(r,t):void 0}}(r))||t&&r&&"number"==typeof r.length){n&&(r=n);var o=0;return function(){return o>=r.length?{done:!0}:{done:!1,value:r[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=r[Symbol.iterator]()).next.bind(n)}var n=Symbol("metadata");function o(r){return r.prototype[n]}function i(r){return void 0!==o(r)}function a(e){return function(t,a){var u;switch(i(t.constructor)||(t.constructor.prototype[n]={keys:[]}),typeof e){case"string":u={key:a,serializedKey:e};break;case"undefined":u={key:a,serializedKey:a};break;default:u=r({key:a,serializedKey:a},e)}o(t.constructor).keys.push(u)}}var u=function(){function r(r){this.definitions=r}var e=r.prototype;return e.serialize=function(r){if(!i(r.constructor))throw Error("Instance constructor does not have any metadata included. Did you forget to include the decorators?");for(var e,n={},a=t(o(r.constructor).keys);!(e=a()).done;){var u=e.value,c=u.serializer,s=u.serializedKey,y=r[u.key],l=void 0!==c?c(y):y;n[s]=l}return n},e.deserialize=function(r,e){for(var n,i={},a=t(o(e).keys);!(n=a()).done;){var u=n.value,c=u.deserializer,s=u.key,y=r[u.serializedKey],l=void 0!==c?c(y):y;i[s]=l}return Object.assign(e.prototype,i)},r}();export{u as Bargain,a as Property};
//# sourceMappingURL=index.module.js.map