UNPKG

wrapme

Version:

Functions to wrap other functions and methods and to change/enhance their behavior, functionality or usage

3 lines (2 loc) 1.94 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).wrapme={})}(this,(function(e){"use strict";function t(e,t,n,r){var u,i,o,a,l,f,c,s=!1,p=!1,g=!1,y=0,d={},b=1;"string"==typeof t?(l=e,"function"!=typeof(a=e[t])||r&&(r.get||r.set)?(u=a,a=t,s=!0):(o=t,g=!0)):(a=e,l=null,r=n,n=t,t=o,o=e.name,p=!0),r||(r={});var v=r.context;function h(){var e=Array.prototype.slice.call(arguments),u=!s,h=s&&!e.length,m=s&&!h,O=this;function j(e){return h?i():m?f(e[0]):a.apply(O,e)}var w,A={arg:e,arg0:e[0],byCall:u,byGet:h,bySet:m,byUnwrap:!b,context:O,data:r.data,field:t,fieldWrap:s,funcWrap:p,get:i,method:o,methodWrap:g,number:++y,save:d,set:f,settings:r,target:a,targetObj:l,run:x,runApply:function(t){return j(arguments.length?Array.isArray(t)?t:[t]:e)},value:c};function x(){return j(arguments.length?arguments:e)}return(r.before||r.listen)&&(w=x()),A.result=w,A.result=v?n.call(v,A):n(A),r.after?w=x():r.listen||(w=A.result),c=w}if(l){if(g)return l[o]=r.bind?h.bind(l):h,function(){l[o]=a};var m=Object.getOwnPropertyDescriptor(l,t)||{value:u,writable:!0,enumerable:!0,configurable:!0};return(b=Object.getOwnPropertyDescriptor(l,t))?(delete b.value,delete b.writable):b={enumerable:!0,configurable:!0},i=b.get||("function"==typeof r.get?r.get:null)||function(){return u},f=b.set||("function"==typeof r.set?r.set:null)||function(e){return u=e},"get"in r&&!r.get||(b.get=h),"set"in r&&!r.set||(b.set=h),Object.defineProperty(l,t,b),function(){"value"in m&&(b=0,m.value=l[t]),Object.defineProperty(l,t,m)}}return h}function n(e,n,r,u){if(Array.isArray(n)){for(var i=[],o=0,a=n.length;o<a;o++)i.push(t(e,n[o],r,u));return i.length>1?function(){for(var e=0,t=i.length;e<t;e++)i[e]()}:i[0]}return t(e,n,r,u)}e.default=n,e.intercept=n,e.wrap=t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=wrapme.umd.production.min.js.map