shaungrady/angular-http-etag

View on GitHub
release/angular-http-etag.min.js

Summary

Maintainability
A
0 mins
Test Coverage
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("angular")):"function"==typeof define&&define.amd?define(["angular"],t):"object"==typeof exports?exports["http-etag"]=t(require("angular")):e["http-etag"]=t(e.angular)}(window,function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(t,n){t.exports=e},function(e,t){e.exports=function(e,t){if(e.map)return e.map(t);for(var r=[],o=0;o<e.length;o++){var i=e[o];n.call(e,o)&&r.push(t(i,o,e))}return r};var n=Object.prototype.hasOwnProperty},function(e,t,n){(function(t){!function(t,n){e.exports=n()}(0,function(){"use strict";var e="function"==typeof Promise,n="object"==typeof self?self:t,r="undefined"!=typeof Symbol,o="undefined"!=typeof Map,i="undefined"!=typeof Set,a="undefined"!=typeof WeakMap,c="undefined"!=typeof WeakSet,u="undefined"!=typeof DataView,f=r&&void 0!==Symbol.iterator,s=r&&void 0!==Symbol.toStringTag,p=i&&"function"==typeof Set.prototype.entries,l=o&&"function"==typeof Map.prototype.entries,d=p&&Object.getPrototypeOf((new Set).entries()),m=l&&Object.getPrototypeOf((new Map).entries()),g=f&&"function"==typeof Array.prototype[Symbol.iterator],y=g&&Object.getPrototypeOf([][Symbol.iterator]()),h=f&&"function"==typeof String.prototype[Symbol.iterator],v=h&&Object.getPrototypeOf(""[Symbol.iterator]()),b=8,w=-1;return function(t){var r=typeof t;if("object"!==r)return r;if(null===t)return"null";if(t===n)return"global";if(Array.isArray(t)&&(!1===s||!(Symbol.toStringTag in t)))return"Array";if("object"==typeof window&&null!==window){if("object"==typeof window.location&&t===window.location)return"Location";if("object"==typeof window.document&&t===window.document)return"Document";if("object"==typeof window.navigator){if("object"==typeof window.navigator.mimeTypes&&t===window.navigator.mimeTypes)return"MimeTypeArray";if("object"==typeof window.navigator.plugins&&t===window.navigator.plugins)return"PluginArray"}if(("function"==typeof window.HTMLElement||"object"==typeof window.HTMLElement)&&t instanceof window.HTMLElement){if("BLOCKQUOTE"===t.tagName)return"HTMLQuoteElement";if("TD"===t.tagName)return"HTMLTableDataCellElement";if("TH"===t.tagName)return"HTMLTableHeaderCellElement"}}var f=s&&t[Symbol.toStringTag];if("string"==typeof f)return f;var p=Object.getPrototypeOf(t);return p===RegExp.prototype?"RegExp":p===Date.prototype?"Date":e&&p===Promise.prototype?"Promise":i&&p===Set.prototype?"Set":o&&p===Map.prototype?"Map":c&&p===WeakSet.prototype?"WeakSet":a&&p===WeakMap.prototype?"WeakMap":u&&p===DataView.prototype?"DataView":o&&p===m?"Map Iterator":i&&p===d?"Set Iterator":g&&p===y?"Array Iterator":h&&p===v?"String Iterator":null===p?"Object":Object.prototype.toString.call(t).slice(b,w)}})}).call(this,n(4))},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Array.prototype.slice,a=n(5),c=Object.prototype.propertyIsEnumerable,u=!c.call({toString:null},"toString"),f=c.call(function(){},"prototype"),s=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],p=function(e){var t=e.constructor;return t&&t.prototype===e},l={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},d=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!l["$"+e]&&r.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{p(window[e])}catch(e){return!0}}catch(e){return!0}return!1}(),m=function(e){var t=null!==e&&"object"==typeof e,n="[object Function]"===o.call(e),i=a(e),c=t&&"[object String]"===o.call(e),l=[];if(!t&&!n&&!i)throw new TypeError("Object.keys called on a non-object");var m=f&&n;if(c&&e.length>0&&!r.call(e,0))for(var g=0;g<e.length;++g)l.push(String(g));if(i&&e.length>0)for(var y=0;y<e.length;++y)l.push(String(y));else for(var h in e)m&&"prototype"===h||!r.call(e,h)||l.push(String(h));if(u)for(var v=function(e){if("undefined"==typeof window||!d)return p(e);try{return p(e)}catch(e){return!1}}(e),b=0;b<s.length;++b)v&&"constructor"===s[b]||!r.call(e,s[b])||l.push(s[b]);return l};m.shim=function(){if(Object.keys){if(!function(){return 2===(Object.keys(arguments)||"").length}(1,2)){var e=Object.keys;Object.keys=function(t){return a(t)?e(i.call(t)):e(t)}}}else Object.keys=m;return Object.keys||m},e.exports=m},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";var r=Object.prototype.toString;e.exports=function(e){var t=r.call(e),n="[object Arguments]"===t;return n||(n="[object Array]"!==t&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===r.call(e.callee)),n}},function(e,t,n){"use strict";n.r(t);var r=n(0),o=n.n(r),i=n(2);const a="undefined"!=typeof Buffer,c=a&&void 0!==Buffer.from,u=a?function(e){return Buffer.isBuffer(e)}:function(){return!1},f=c?function(e){return Buffer.from(e)}:a?function(e){return new Buffer(e)}:function(e){return e};function s(e){return u(e)?"Buffer":i(e)}const p=new Set(["Arguments","Array","Map","Object","Set"]);function l(e,t,n=null){switch(n||s(e)){case"Arguments":case"Array":case"Object":return e[t];case"Map":return e.get(t);case"Set":return t}}function d(e){return p.has(e)}function m(e,t,n,r=null){switch(r||s(e)){case"Arguments":case"Array":case"Object":e[t]=n;break;case"Map":e.set(t,n);break;case"Set":e.add(n)}return e}const g=Function("return this")();function y(e,t){return g[t].from(e)}function h(e){return e}function v(){return[]}var b=new Map([["ArrayBuffer",function(e){return e.slice(0)}],["Boolean",function(e){return new Boolean(e.valueOf())}],["Buffer",function(e){return f(e)}],["DataView",function(e){return new DataView(e.buffer)}],["Date",function(e){return new Date(e.getTime())}],["Number",function(e){return new Number(e)}],["RegExp",function(e){return new RegExp(e.source||"(?:)",e.flags)}],["String",function(e){return new String(e)}],["Float32Array",y],["Float64Array",y],["Int16Array",y],["Int32Array",y],["Int8Array",y],["Uint16Array",y],["Uint32Array",y],["Uint8Array",y],["Uint8ClampedArray",y],["Array Iterator",h],["Map Iterator",h],["Promise",h],["Set Iterator",h],["String Iterator",h],["function",h],["global",h],["WeakMap",h],["WeakSet",h],["boolean",h],["null",h],["number",h],["string",h],["symbol",h],["undefined",h],["Arguments",v],["Array",v],["Map",function(){return new Map}],["Object",function(){return{}}],["Set",function(){return new Set}]]);function w(e,t=null,n=function(){}){2===arguments.length&&"function"==typeof t&&(n=t,t=null);const r=t||s(e),o=b.get(r);if("Object"===r){const t=n(e,r);if(void 0!==t)return t}return o?o(e,r):e}function S(e,t,n,r,o){const i=s(e),a=w(e,i);if(!d(i))return a;let c;switch(i){case"Arguments":case"Array":c=Object.keys(e);break;case"Object":(c=Object.keys(e)).push(...Object.getOwnPropertySymbols(e));break;case"Map":case"Set":c=e.keys()}for(let a of c){const c=l(e,a,i);if(r.has(c))m(t,a,n.get(c),i);else{const e=s(c),u=w(c,e);d(e)&&(n.set(c,u),r.add(c)),m(t,a,S(c,u,n,r,o),i)}}return t}var I=function(){var e=this,t=["createCache","getCache"],n=["setItem","getItem","removeItem","removeAllItems"],r=t.concat(n),i={},a={},c="httpEtagCache",u={deepCopy:!1,cacheResponseData:!0,cacheService:"$cacheFactory",cacheOptions:{number:25}};e.setDefaultCacheConfig=function(t){return u=o.a.extend({},u,t),e},e.getDefaultCacheConfig=function(){return u},e.defineCache=function(t,n){return n=o.a.extend({},u,n,{id:t}),a[t]=n,e},e.defineCacheServiceAdapter=function(t,n){if(!n)throw new Error("Missing cache service adapter configuration");if(!n.methods)throw new Error("Missing cache service adapter configuration methods");return o.a.forEach(r,function(e){if("function"!=typeof n.methods[e])throw new Error('Expected cache service adapter method "'+e+'" to be a function')}),i[t]=n,e},e.getCacheServiceAdapter=function(e){return i[e]},e.$get=["$injector",function(r){var u={},f={},p={},l={},m={};return a[c]||e.defineCache(c),o.a.forEach(i,function(e,n){var i=f[n]=window[n]||r.get(n),a=p[n]={};o.a.forEach(t,function(t){a[t]=o.a.bind({},e.methods[t],i)})}),o.a.forEach(a,function(e,t){p[e.cacheService].createCache(t,e);var r=l[t]=p[e.cacheService].getCache(t),c=m[t]={},f=i[e.cacheService].config.storesDeepCopies,g=!f&&a[t].deepCopy,y=function(e){return g?function(e,t={}){"function"==typeof t&&(t={customizer:t});const{customizer:n}=t,r=s(e);if(!d(r))return S(e,null,null,null,n);const o=w(e,r,n);return S(e,o,new WeakMap([[e,o]]),new WeakSet([e]),n)}(e):e};o.a.forEach(n,function(t){var n,a,u=i[e.cacheService].methods[t];"getItem"===t&&(n=function(e,t,n){var r=u(e,t,n);return r&&y(r.responseData)},a=function(e,t,n){return y(u(e,t,n))}),"setItem"===t&&(n=function(e,t,n,r){var o=c.$getItem(t);n=y(n),o&&"object"==typeof o?(o.responseData=n,n=o):n={responseData:n},u(e,t,n,r)},a=function(e,t,n,r){u(e,t,y(n),r)}),c[t]=o.a.bind({},n||u,r),a&&(c["$"+t]=o.a.bind({},a,r))}),c.unsetItem=function(e){c.setItem(e,void 0)},c.expireItem=function(e){var t=c.$getItem(e);delete t.etagHeader,c.$setItem(e,t)},c.getItemCache=function(e){return u.getItemCache(t,e)},c.info=function(){return a[t]},c.isCache=!0}),u.info=function(){return a},u.getCache=function(e){var t=m[function(e){var t=typeof e;return"number"===t||"string"===t&&e?e:c}(e)];if(t)return t},u.getItemCache=function(e,t){var n=u.getCache(e),r={};if(n){return o.a.forEach([["set","setItem"],["get","getItem"],["$set","$setItem"],["$get","$getItem"],["unset","unsetItem"],["expire","expireItem"],["remove","removeItem"]],function(e){r[e[0]]=o.a.bind({},n[e[1]],t)}),r.info=function(){var e=n.info();return e.itemKey=t,e},r.isItemCache=!0,r}},u.purgeCaches=function(){o.a.forEach(m,function(e){e.removeAllItems()})},u}]};var j=n(3),O=n.n(j),C=n(1),$=n.n(C),A=E;function E(e,t){var n=e,r=["GET","JSONP"];function i(e){var i,c=E.useLegacyPromiseExtensions(),u=!!e.etagCache,f=r.indexOf(e.method)>=0;if(u&&f){var s=function(e){var t=e.etagCache,n=typeof t,r={};"function"===n&&(t=t(e),n=typeof t);if("object"===n){var o,i;t.isCache?(o=t.info().id,i=a(e)):t.isItemCache?(o=t.info().id,i=t.info().itemKey):(o=t.id,i=t.itemKey||a(e)),r.id=o,r.itemKey=i}else if("string"===n)r.id=t,r.itemKey=a(e);else{if(!0!==t)return;r.itemKey=a(e)}return r}(e);if(s){var p=t.getItemCache(s.id,s.itemKey);if(!p)throw new Error("No defined ETag caches match specified cache ID");var l=p.info(),d=p.$get(),m=d&&d.etagHeader,g=m&&d.responseData;e.$$_itemCache=p,m&&(e.headers=o.a.extend({},e.headers,{"If-None-Match":m}))}}return function t(n){var r=n.then;var o=n.success;n.cached=c?function(t){return d&&l.cacheResponseData&&t(g,"cached",void 0,e,p),n}:function(){throw new Error("The method `cached` on the promise returned from `$http` has been disabled in favor of `ifCached`.")};n.ifCached=function(t){return d&&l.cacheResponseData&&t({data:g,status:"cached",headers:void 0,config:e},p),n};n.then=function(e,o,i){var a=r.apply(n,[e?function(t){return e(t,p)}:void 0,o?function(e){return o(e,p)}:void 0,i]);return t(a)};c&&p&&(n.success=function(e){var t=function(e){var t=Array.prototype.slice.call(arguments,1);return function(){for(var n=0,r=0;r<t.length&&n<arguments.length;r++)void 0===t[r]&&(t[r]=arguments[n++]);return e.apply(this,t)}}(e,void 0,void 0,void 0,void 0,p);return o.apply(n,[t])});return n}(i=n.apply(n,arguments)),i}function a(e){var t=e.url,n=function(e){return e?$()(O()(e).sort(),function(t){var n=e[t];return o.a.isArray(n)?$()(n.sort(),function(e){return encodeURIComponent(t)+"="+encodeURIComponent(e)}).join("&"):encodeURIComponent(t)+"="+encodeURIComponent(n)}).join("&"):""}(e.params),r=n&&t.indexOf("?")>0?"&":"?";return t+(n&&r+n||"")}return o.a.forEach(r,function(e){i[e.toLowerCase()]=function(t,r){return r=o.a.extend({},r,{method:e,url:t}),i.call(n,r)}}),o.a.forEach(n,function(e,t){i[t]||(i[t]=e)}),i}E.$inject=["$delegate","httpEtag"];var x=function(){return{response:function(e){var t=e.config.$$_itemCache;if(t){var n=t.info(),r=n.cacheResponseData,o=e.headers().etag,i={};o&&(i.etagHeader=o,r&&(i.responseData=e.data),t.$set(i)),delete e.config.$$_itemCache}return e}}};var M=D;function D(e){e.defineCacheServiceAdapter("$cacheFactory",{config:{storesDeepCopies:!1},methods:{createCache:function(e,t,n){e(t,n)},getCache:function(e,t){return e.get(t)},setItem:function(e,t,n){e.put(t,n)},getItem:function(e,t){return e.get(t)},removeItem:function(e,t){e.remove(t)},removeAllItems:function(e,t){e.removeAll()}}}).defineCacheServiceAdapter("localStorage",{config:{storesDeepCopies:!0},methods:{createCache:o.a.noop,getCache:function(e,t){return t},setItem:function(e,t,n){try{t=e+":"+t,localStorage.setItem(t,JSON.stringify(n))}catch(e){}},getItem:function(e,t){return t=e+":"+t,JSON.parse(localStorage.getItem(t))},removeItem:function(e,t){t=e+":"+t,localStorage.removeItem(t)},removeAllItems:function(e,t){var n=e+":";o.a.forEach(localStorage,function(e,t){0===t.indexOf(n)&&localStorage.removeItem(t)})}}}).defineCacheServiceAdapter("sessionStorage",{config:{storesDeepCopies:!0},methods:{createCache:o.a.noop,getCache:function(e,t){return t},setItem:function(e,t,n){try{t=e+":"+t,sessionStorage.setItem(t,JSON.stringify(n))}catch(e){}},getItem:function(e,t){return t=e+":"+t,JSON.parse(sessionStorage.getItem(t))},removeItem:function(e,t){t=e+":"+t,sessionStorage.removeItem(t)},removeAllItems:function(e,t){var n=e+":";o.a.forEach(sessionStorage,function(e,t){0===t.indexOf(n)&&sessionStorage.removeItem(t)})}}})}D.$inject=["httpEtagProvider"];t.default=o.a.module("http-etag",[]).provider("httpEtag",I).config(M).config(["$provide","$httpProvider",function(e,t){A.useLegacyPromiseExtensions=t.useLegacyPromiseExtensions||function(){return 1===o.a.version.major&&o.a.version.minor<6},e.decorator("$http",A),t.interceptors.push(x)}]).name}])});
//# sourceMappingURL=angular-http-etag.min.js.map