Skip to content

Instantly share code, notes, and snippets.

@js2me
Created July 5, 2019 05:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save js2me/5c02180e0180ff79ab0ef25026c32c09 to your computer and use it in GitHub Desktop.
Save js2me/5c02180e0180ff79ab0ef25026c32c09 to your computer and use it in GitHub Desktop.
Rollup, terser - mangle options true with reserved keywords
var n,e;n=this,e=function(n){var e;!function(n){n.t="@ONLY_STRINGS",n.o="@ONLY_STRINGS",n.i="@ONLY_STRINGS",n.u="@STRING_AND_CLASS",n.s="@SERIALIZERS"}(e||(e={}));var t,o=function(n){return"object"==typeof n&&null!==n&&!(n instanceof Array)},r=function(n){return!("object"==typeof n||n instanceof Array||"function"==typeof n)},i=function(){for(var n=[],e=0;arguments.length>e;e++)n[e]=arguments[e];throw console.error.apply(console,["❗️ : "].concat(n)),Error("❗️ : Exception based on message above")},u=function(){for(var n=[],e=0;arguments.length>e;e++)n[e]=arguments[e];console.warn.apply(console,["⚠️ : "].concat(n))},f=function(){return(f=Object.assign||function(n){for(var e,t=1,o=arguments.length;o>t;t++)for(var r in e=arguments[t])({}).hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}).apply(this,arguments)},a=function(n,e){return null!==n&&u('Not possible to cast value "',n,'" to type '+e+".")},c=function(n,e){var t=Object.keys(p);return-1===t.indexOf(n)&&i("Type ",n," of value of property ",e," is not possble for type casting\r\nPlease use one of following types: "+t.join(", ")),!0},s=function(model,n){return void 0===model[n]&&u('Property "',n,'" is not existing in model :',model),!0},l=function(n,e){return n.l||i("Declared model for ",e,' is not created via model() function.Please wrap this model into "model()" function'),!0},p={p:function(n){return n},v:function(n){return!!n},number:function(n){var e=+n;return!r(n)||Number.isNaN(e)?(a(n,"number"),n):e},object:function(n){return o(n)?Object.assign({},n):(a(n,"object"),n)},g:function(n){return r(n)?""+n:(a(n,"string"),n)}},y=function(n,e){for(var t=e.m,o=e.A,model={},r=0,u=t.O;u.length>r;r++){var f=u[r].scheme;(0,v[f._][o?"A":"S"])(n,{P:model,h:t.options,scheme:f})}return Object.keys(model).length||i("Unknown error. Object is empty after serializing/deserializing"),model},d=function(n,e){return i("For ",n," property you are use 'fieldArray()' and because of this the original property ",e," should have type array")},v=((t={})[e.u]={A:function(n,e){var model=e.P,t=e.scheme,o=t.from,r=t.j,i=t.N;e.h.L&&s(n,r.name),i?(n[r.name]instanceof Array||d(r.name,r.name),model[o.name]=n[r.name].map(function(n){return l(n,r.name),n.l()})):(l(n[r.name],r.name),model[o.name]=n[r.name].l())},S:function(n,e){var model=e.P,t=e.scheme,o=t.from,r=t.j,i=t.N;if(e.h.L&&s(n,o.name),i)n[o.name]instanceof Array||d(o.name,o.name),model[r.name]=n[o.name].map(function(n){var e=new o.type(n);return l(e,o.name)&&e});else{var u=new o.type(n[o.name]);l(u,o.name),model[r.name]=u}}},t[e.s]={A:function(n,e){var model=e.P,t=e.scheme,r=t.from,u=t.j;if("function"==typeof u.R){var f=u.R(n,model);o(f)||i("Return value of callback function of property .to() should have type object\r\nBecause return value will be merged into result object model"),Object.assign(model,f)}else delete model[r.name]},S:function(n,e){var model=e.P,t=e.scheme,o=t.from,r=t.j;"function"!=typeof o.R&&i("Custom handler should be exist and have type functions"),model[r.name]=o.R(n)}},t[e.i]={A:function(n,e){var model=e.P,t=e.scheme,o=t.from,r=t.j,i=t.N;e.h.L&&s(n,r.name),i?(n[r.name]instanceof Array||d(r.name,r.name),model[o.name]=n[r.name].map(function(n){return c(o.type,r.name),p[o.type](n)})):(c(o.type,r.name),model[o.name]=p[o.type](n[r.name]))},S:function(n,e){var model=e.P,t=e.scheme,o=t.from,r=t.j,i=t.N;e.h.L&&s(n,o.name),i?(n[o.name]instanceof Array||d(o.name,r.name),model[r.name]=n[o.name].map(function(n){return c(r.type,o.name),p[r.type](n)})):(c(r.type,o.name),model[r.name]=p[r.type](n[o.name]))}},t),b=function(n,e){return Object.keys(n).reduce(function(t,o){var r=n[o];if(r["C"]){var i=r.scheme;if("@@CLASS_PROP_NAME"===i.j.name&&(i.j.name=o),"@@VALUE_TYPE"===i.j.type){var u=typeof e[i.from.name];i.j.type=u,i.from.type=u}t.push(f({},r)),delete n[o]}return t},[])},g={T:!1,L:!0},createModel=function(n,e){var t,r=function(t){o(t)||(u("Original model is not an object (current value: ",t,")"),t={});var r="function"==typeof n?new n:new(function(){return function(n){Object.assign(this,f({},n))}}())(n),i=function(n,e,t){return{O:b(n,e),options:f({},g,t||{})}}(r,t,e);return Object.assign(r,y(t,{m:i,A:!1})),r.__proto__.l=function(){return y(r,{m:i,A:!0})},r};return(t=function(){return function(n){return r(n)}}()).M=r,t.l=function(n){return o(n)||i("Usage model is not an object."),n.l||i('Argument of "deserialize" function is not created via "model()" function'),n.l()},t},m=function(n){var t=n.options,o={N:!!n.N,from:{name:"",R:null,type:null},_:null,j:{name:"",R:null,type:null}},r=t[0],u=t[1],f=t[2];return 1===t.length&&("string"==typeof r&&(o._=e.t,o.from.name=r,o.from.type="@@VALUE_TYPE",o.j.name="@@CLASS_PROP_NAME",o.j.type="@@VALUE_TYPE"),"function"==typeof r&&(o._=e.s,o.j.name="@@CLASS_PROP_NAME",o.from.R=r,o.j.R=function(){return{}})),2===t.length&&("string"==typeof r&&("string"==typeof u&&(o._=e.o,o.from.name=r,o.from.type=u,o.j.name="@@CLASS_PROP_NAME",o.j.type=u),"function"==typeof u&&(o._=e.u,o.from.name=r,o.from.type=u,o.j.name="@@CLASS_PROP_NAME",o.j.type=u),"object"==typeof u&&(o._=e.u,o.from.name=r,o.from.type=createModel(u),o.j.name="@@CLASS_PROP_NAME",o.j.type=createModel(u))),"function"==typeof r&&("function"!=typeof u&&i("Second argument should be function which needed to deserialize usage model to original"),o._=e.s,o.j.name="@@CLASS_PROP_NAME",o.from.R=r,o.j.R=u)),3===t.length&&"string"==typeof r&&"string"==typeof u&&"string"==typeof f&&(o._=e.i,o.from.name=r,o.from.type=u,o.j.name="@@CLASS_PROP_NAME",o.j.type=f),o._||i("Unknown scheme type: ",o._,"\r\nProbably it happened because you send to field()/fieldArray() invalid arguments"),o};n.U=function(){for(var n,e=[],t=0;arguments.length>t;t++)e[t]=arguments[t];return(n={})["C"]=!0,n.scheme=m({options:e,N:!1}),n},n.I=function(){for(var n,e=[],t=0;arguments.length>t;t++)e[t]=arguments[t];return(n={})["C"]=!0,n.scheme=m({options:e,N:!0}),n},n.P=createModel,Object.defineProperty(n,"Y",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n=n||self).G={});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment