forked from angular/bower-angular-resource
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathangular-resource.min.js
15 lines (15 loc) · 4.46 KB
/
angular-resource.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
AngularJS v1.5.7-build.4839+sha.a478f69
(c) 2010-2016 Google, Inc. http://angularjs.org
License: MIT
*/
(function(R,e){'use strict';function K(s,d){d=d||{};e.forEach(d,function(e,n){delete d[n]});for(var n in s)!s.hasOwnProperty(n)||"$"===n.charAt(0)&&"$"===n.charAt(1)||(d[n]=s[n]);return d}var D=e.$$minErr("$resource"),P=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;e.module("ngResource",["ng"]).provider("$resource",function(){var s=/^https?:\/\/[^\/]*/,d=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}};
this.$get=["$http","$log","$q","$timeout",function(n,N,O,L){function E(e,g){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,g?"%20":"+")}function z(e,g){this.template=e;this.defaults=p({},d.defaults,g);this.urlParams={}}function M(q,g,w,h){function b(a,c){var b={};c=p({},g,c);t(c,function(c,g){A(c)&&(c=c());var f;if(c&&c.charAt&&"@"===c.charAt(0)){f=a;var k=c.substr(1);if(null==k||""===k||"hasOwnProperty"===k||!P.test("."+
k))throw D("badmember",k);for(var k=k.split("."),l=0,h=k.length;l<h&&e.isDefined(f);l++){var d=k[l];f=null!==f?f[d]:void 0}}else f=c;b[g]=f});return b}function u(a){return a.resource}function l(a){K(a||{},this)}var s=new z(q,h);w=p({},d.defaults.actions,w);l.prototype.toJSON=function(){var a=p({},this);delete a.$promise;delete a.$resolved;return a};t(w,function(a,c){var g=/^(POST|PUT|PATCH)$/i.test(a.method),q=a.timeout,H=e.isDefined(a.cancellable)?a.cancellable:h&&e.isDefined(h.cancellable)?h.cancellable:
d.defaults.cancellable;q&&!e.isNumber(q)&&(N.debug("ngResource:\n Only numeric values are allowed as `timeout`.\n Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),delete a.timeout,q=null);l[c]=function(f,k,h,d){function w(a){v.catch(F);B.resolve(a)}var I={},x,y,C;switch(arguments.length){case 4:C=d,y=h;case 3:case 2:if(A(k)){if(A(f)){y=f;C=k;break}y=k;C=
h}else{I=f;x=k;y=h;break}case 1:A(f)?y=f:g?x=f:I=f;break;case 0:break;default:throw D("badargs",arguments.length);}var G=this instanceof l,m=G?x:a.isArray?[]:new l(x),r={},E=a.interceptor&&a.interceptor.response||u,z=a.interceptor&&a.interceptor.responseError||void 0,B,J;t(a,function(a,c){switch(c){default:r[c]=Q(a);case "params":case "isArray":case "interceptor":case "cancellable":}});!G&&H&&(B=O.defer(),r.timeout=B.promise,q&&(J=L(B.resolve,q)));g&&(r.data=x);s.setUrlParams(r,p({},b(x,a.params||
{}),I),a.url);var v=n(r).then(function(f){var b=f.data;if(b){if(e.isArray(b)!==!!a.isArray)throw D("badcfg",c,a.isArray?"array":"object",e.isArray(b)?"array":"object",r.method,r.url);if(a.isArray)m.length=0,t(b,function(a){"object"===typeof a?m.push(new l(a)):m.push(a)});else{var k=m.$promise;K(b,m);m.$promise=k}}f.resource=m;return f}),v=v["finally"](function(){m.$resolved=!0;!G&&H&&(m.$cancelRequest=e.noop,L.cancel(J),B=J=r.timeout=null)}),v=v.then(function(a){var c=E(a);(y||F)(c,a.headers);return c},
z||C?function(a){(C||F)(a);(z||F)(a);return a}:void 0);return G?v:(m.$promise=v,m.$resolved=!1,H&&(m.$cancelRequest=w),m)};l.prototype["$"+c]=function(a,b,e){A(a)&&(e=b,b=a,a={});a=l[c].call(this,a,this,b,e);return a.$promise||a}});l.bind=function(a){return M(q,p({},g,a),w)};return l}var F=e.noop,t=e.forEach,p=e.extend,Q=e.copy,A=e.isFunction;z.prototype={setUrlParams:function(d,g,n){var h=this,b=n||h.template,u,l,p="",a=h.urlParams={};t(b.split(/\W/),function(c){if("hasOwnProperty"===c)throw D("badname");
!/^\d+$/.test(c)&&c&&(new RegExp("(^|[^\\\\]):"+c+"(\\W|$)")).test(b)&&(a[c]={isQueryParamValue:(new RegExp("\\?.*=:"+c+"(?:\\W|$)")).test(b)})});b=b.replace(/\\:/g,":");b=b.replace(s,function(a){p=a;return""});g=g||{};t(h.urlParams,function(a,d){u=g.hasOwnProperty(d)?g[d]:h.defaults[d];e.isDefined(u)&&null!==u?(l=a.isQueryParamValue?E(u,!0):E(u,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),b=b.replace(new RegExp(":"+d+"(\\W|$)","g"),function(a,c){return l+c})):b=b.replace(new RegExp("(/?):"+
d+"(\\W|$)","g"),function(a,c,b){return"/"===b.charAt(0)?b:c+b})});h.defaults.stripTrailingSlashes&&(b=b.replace(/\/+$/,"")||"/");b=b.replace(/\/\.(?=\w+($|\?))/,".");d.url=p+b.replace(/\/\\\./,"/.");t(g,function(a,b){h.urlParams[b]||(d.params=d.params||{},d.params[b]=a)})}};return M}]})})(window,window.angular);
//# sourceMappingURL=angular-resource.min.js.map