UNPKG

@bargain/core

Version:

A simple TypeScript decorator-based library for serializing and deserializing data.

3 lines (2 loc) 2.23 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e||self).bargainCore={})}(this,function(e){function r(){return(r=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function t(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function n(e,r){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,r){if(e){if("string"==typeof e)return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[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=e[Symbol.iterator]()).next.bind(n)}var o=Symbol("metadata");function i(e){return e.prototype[o]}function a(e){return void 0!==i(e)}e.Bargain=function(){function e(e){this.definitions=e}var r=e.prototype;return r.serialize=function(e){if(!a(e.constructor))throw Error("Instance constructor does not have any metadata included. Did you forget to include the decorators?");for(var r,t={},o=n(i(e.constructor).keys);!(r=o()).done;){var u=r.value,s=u.serializer,c=u.serializedKey,f=e[u.key],l=void 0!==s?s(f):f;t[c]=l}return t},r.deserialize=function(e,r){for(var t,o={},a=n(i(r).keys);!(t=a()).done;){var u=t.value,s=u.deserializer,c=u.key,f=e[u.serializedKey],l=void 0!==s?s(f):f;o[c]=l}return Object.assign(r.prototype,o)},e}(),e.Property=function(e){return function(t,n){var u;switch(a(t.constructor)||(t.constructor.prototype[o]={keys:[]}),typeof e){case"string":u={key:n,serializedKey:e};break;case"undefined":u={key:n,serializedKey:n};break;default:u=r({key:n,serializedKey:n},e)}i(t.constructor).keys.push(u)}}}); //# sourceMappingURL=index.umd.js.map