vue-resource.min.js 17 KB

1
  1. /*! vue-resource v1.5.1 https://github.com/pagekit/vue-resource Released under the MIT License. */!function(t, e) {"object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.VueResource = e()}(this, function() {"use strict";function u(t) {this.state = 2, this.value = void 0, this.deferred = [];var e = this;try {t(function(t) {e.resolve(t)}, function(t) {e.reject(t)})} catch (t) {e.reject(t)}}u.reject = function(n) {return new u(function(t, e) {e(n)})} , u.resolve = function(n) {return new u(function(t, e) {t(n)})} , u.all = function(s) {return new u(function(n, t) {var o = 0, r = [];function e(e) {return function(t) {r[e] = t, (o += 1) === s.length && n(r)}}0 === s.length && n(r);for (var i = 0; i < s.length; i += 1) u.resolve(s[i]).then(e(i), t)})} , u.race = function(o) {return new u(function(t, e) {for (var n = 0; n < o.length; n += 1) u.resolve(o[n]).then(t, e)})};var t = u.prototype;function c(t, e) {t instanceof Promise ? this.promise = t : this.promise = new Promise(t.bind(e)), this.context = e}t.resolve = function(t) {var e = this;if (2 === e.state) {if (t === e) throw new TypeError("Promise settled with itself.");var n = !1;try {var o = t && t.then;if (null !== t && "object" == typeof t && "function" == typeof o) return void o.call(t, function(t) {n || e.resolve(t), n = !0}, function(t) {n || e.reject(t), n = !0})} catch (t) {return void (n || e.reject(t))}e.state = 0, e.value = t, e.notify()}} , t.reject = function(t) {var e = this;if (2 === e.state) {if (t === e) throw new TypeError("Promise settled with itself.");e.state = 1, e.value = t, e.notify()}} , t.notify = function() {var t, i = this;r(function() {if (2 !== i.state) for (; i.deferred.length; ) {var t = i.deferred.shift(), e = t[0], n = t[1], o = t[2], r = t[3];try {0 === i.state ? o("function" == typeof e ? e.call(void 0, i.value) : i.value) : 1 === i.state && ("function" == typeof n ? o(n.call(void 0, i.value)) : r(i.value))} catch (t) {r(t)}}}, t)} , t.then = function(n, o) {var r = this;return new u(function(t, e) {r.deferred.push([n, o, t, e]), r.notify()})} , t.catch = function(t) {return this.then(void 0, t)} , "undefined" == typeof Promise && (window.Promise = u), c.all = function(t, e) {return new c(Promise.all(t),e)} , c.resolve = function(t, e) {return new c(Promise.resolve(t),e)} , c.reject = function(t, e) {return new c(Promise.reject(t),e)} , c.race = function(t, e) {return new c(Promise.race(t),e)};var e = c.prototype;e.bind = function(t) {return this.context = t, this} , e.then = function(t, e) {return t && t.bind && this.context && (t = t.bind(this.context)), e && e.bind && this.context && (e = e.bind(this.context)), new c(this.promise.then(t, e),this.context)} , e.catch = function(t) {return t && t.bind && this.context && (t = t.bind(this.context)), new c(this.promise.catch(t),this.context)} , e.finally = function(e) {return this.then(function(t) {return e.call(this), t}, function(t) {return e.call(this), Promise.reject(t)})};var r, i = {}.hasOwnProperty, o = [].slice, a = !1, s = "undefined" != typeof window;function f(t) {return t ? t.replace(/^\s*|\s*$/g, "") : ""}function p(t) {return t ? t.toLowerCase() : ""}var h = Array.isArray;function d(t) {return "string" == typeof t}function l(t) {return "function" == typeof t}function m(t) {return null !== t && "object" == typeof t}function y(t) {return m(t) && Object.getPrototypeOf(t) == Object.prototype}function v(t, e, n) {var o = c.resolve(t);return arguments.length < 2 ? o : o.then(e, n)}function b(t, e, n) {return l(n = n || {}) && (n = n.call(e)), T(t.bind({$vm: e, $options: n}), t, {$options: n})}function g(t, e) {var n, o;if (h(t)) for (n = 0; n < t.length; n++) e.call(t[n], t[n], n); else if (m(t)) for (o in t) i.call(t, o) && e.call(t[o], t[o], o);return t}var w = Object.assign || function(e) {return o.call(arguments, 1).forEach(function(t) {x(e, t)}), e};function T(e) {return o.call(arguments, 1).forEach(function(t) {x(e, t, !0)}), e}function x(t, e, n) {for (var o in e) n && (y(e[o]) || h(e[o])) ? (y(e[o]) && !y(t[o]) && (t[o] = {}), h(e[o]) && !h(t[o]) && (t[o] = []), x(t[o], e[o], n)) : void 0 !== e[o] && (t[o] = e[o])}function j(t, e, n) {var o, u, a, r = (o = t, u = ["+", "#", ".", "/", ";", "?", "&"], {vars: a = [], expand: function(s) {return o.replace(/\{([^{}]+)\}|([^{}]+)/g, function(t, e, n) {if (e) {var o = null, r = [];if (-1 !== u.indexOf(e.charAt(0)) && (o = e.charAt(0), e = e.substr(1)), e.split(/,/g).forEach(function(t) {var e = /([^:*]*)(?::(\d+)|(\*))?/.exec(t);r.push.apply(r, function(t, e, n, o) {var r = t[n], i = [];if (E(r) && "" !== r) if ("string" == typeof r || "number" == typeof r || "boolean" == typeof r) r = r.toString(), o && "*" !== o && (r = r.substring(0, parseInt(o, 10))), i.push(O(e, r, P(e) ? n : null)); else if ("*" === o) Array.isArray(r) ? r.filter(E).forEach(function(t) {i.push(O(e, t, P(e) ? n : null))}) : Object.keys(r).forEach(function(t) {E(r[t]) && i.push(O(e, r[t], t))}); else {var s = [];Array.isArray(r) ? r.filter(E).forEach(function(t) {s.push(O(e, t))}) : Object.keys(r).forEach(function(t) {E(r[t]) && (s.push(encodeURIComponent(t)), s.push(O(e, r[t].toString())))}), P(e) ? i.push(encodeURIComponent(n) + "=" + s.join(",")) : 0 !== s.length && i.push(s.join(","))} else ";" === e ? i.push(encodeURIComponent(n)) : "" !== r || "&" !== e && "?" !== e ? "" === r && i.push("") : i.push(encodeURIComponent(n) + "=");return i}(s, o, e[1], e[2] || e[3])), a.push(e[1])}), o && "+" !== o) {var i = ",";return "?" === o ? i = "&" : "#" !== o && (i = o), (0 !== r.length ? o : "") + r.join(i)}return r.join(",")}return C(n)})}}), i = r.expand(e);return n && n.push.apply(n, r.vars), i}function E(t) {return null != t}function P(t) {return ";" === t || "&" === t || "?" === t}function O(t, e, n) {return e = "+" === t || "#" === t ? C(e) : encodeURIComponent(e), n ? encodeURIComponent(n) + "=" + e : e}function C(t) {return t.split(/(%[0-9A-Fa-f]{2})/g).map(function(t) {return /%[0-9A-Fa-f]/.test(t) || (t = encodeURI(t)), t}).join("")}function $(t, e) {var r, i = this || {}, n = t;return d(t) && (n = {url: t, params: e}), n = T({}, $.options, i.$options, n), $.transforms.forEach(function(t) {var e, n, o;d(t) && (t = $.transform[t]), l(t) && (e = t, n = r, o = i.$vm, r = function(t) {return e.call(o, t, n)})}), r(n)}function U(i) {return new c(function(o) {var r = new XDomainRequest, t = function(t) {var e = t.type, n = 0;"load" === e ? n = 200 : "error" === e && (n = 500), o(i.respondWith(r.responseText, {status: n}))};i.abort = function() {return r.abort()} , r.open(i.method, i.getUrl()), i.timeout && (r.timeout = i.timeout), r.onload = t, r.onabort = t, r.onerror = t, r.ontimeout = t, r.onprogress = function() {} , r.send(i.getBody())})}$.options = {url: "", root: null, params: {}}, $.transform = {template: function(e) {var t = [], n = j(e.url, e.params, t);return t.forEach(function(t) {delete e.params[t]}), n}, query: function(t, e) {var n = Object.keys($.options.params), o = {}, r = e(t);return g(t.params, function(t, e) {-1 === n.indexOf(e) && (o[e] = t)}), (o = $.params(o)) && (r += (-1 == r.indexOf("?") ? "?" : "&") + o), r}, root: function(t, e) {var n, o, r = e(t);return d(t.root) && !/^(https?:)?\//.test(r) && (n = t.root, o = "/", r = (n && void 0 === o ? n.replace(/\s+$/, "") : n && o ? n.replace(new RegExp("[" + o + "]+$"), "") : n) + "/" + r), r}}, $.transforms = ["template", "query", "root"], $.params = function(t) {var e = [], n = encodeURIComponent;return e.add = function(t, e) {l(e) && (e = e()), null === e && (e = ""), this.push(n(t) + "=" + n(e))} , function n(o, t, r) {var i, s = h(t), u = y(t);g(t, function(t, e) {i = m(t) || h(t), r && (e = r + "[" + (u || i ? e : "") + "]"), !r && s ? o.add(t.name, t.value) : i ? n(o, t, e) : o.add(e, t)})}(e, t), e.join("&").replace(/%20/g, "+")} , $.parse = function(t) {var e = document.createElement("a");return document.documentMode && (e.href = t, t = e.href), e.href = t, {href: e.href, protocol: e.protocol ? e.protocol.replace(/:$/, "") : "", port: e.port, host: e.host, hostname: e.hostname, pathname: "/" === e.pathname.charAt(0) ? e.pathname : "/" + e.pathname, search: e.search ? e.search.replace(/^\?/, "") : "", hash: e.hash ? e.hash.replace(/^#/, "") : ""}};var R = s && "withCredentials"in new XMLHttpRequest;function n(u) {return new c(function(o) {var t, r, e = u.jsonp || "callback", i = u.jsonpCallback || "_jsonp" + Math.random().toString(36).substr(2), s = null;t = function(t) {var e = t.type, n = 0;"load" === e && null !== s ? n = 200 : "error" === e && (n = 500), n && window[i] && (delete window[i], document.body.removeChild(r)), o(u.respondWith(s, {status: n}))} , window[i] = function(t) {s = JSON.stringify(t)} , u.abort = function() {t({type: "abort"})} , u.params[e] = i, u.timeout && setTimeout(u.abort, u.timeout), (r = document.createElement("script")).src = u.getUrl(), r.type = "text/javascript", r.async = !0, r.onload = t, r.onerror = t, document.body.appendChild(r)})}function A(r) {return new c(function(n) {var o = new XMLHttpRequest, t = function(t) {var e = r.respondWith("response"in o ? o.response : o.responseText, {status: 1223 === o.status ? 204 : o.status, statusText: 1223 === o.status ? "No Content" : f(o.statusText)});g(f(o.getAllResponseHeaders()).split("\n"), function(t) {e.headers.append(t.slice(0, t.indexOf(":")), t.slice(t.indexOf(":") + 1))}), n(e)};r.abort = function() {return o.abort()} , o.open(r.method, r.getUrl(), !0), r.timeout && (o.timeout = r.timeout), r.responseType && "responseType"in o && (o.responseType = r.responseType), (r.withCredentials || r.credentials) && (o.withCredentials = !0), r.crossOrigin || r.headers.set("X-Requested-With", "XMLHttpRequest"), l(r.progress) && "GET" === r.method && o.addEventListener("progress", r.progress), l(r.downloadProgress) && o.addEventListener("progress", r.downloadProgress), l(r.progress) && /^(POST|PUT)$/i.test(r.method) && o.upload.addEventListener("progress", r.progress), l(r.uploadProgress) && o.upload && o.upload.addEventListener("progress", r.uploadProgress), r.headers.forEach(function(t, e) {o.setRequestHeader(e, t)}), o.onload = t, o.onabort = t, o.onerror = t, o.ontimeout = t, o.send(r.getBody())})}function S(s) {var u = require("got");return new c(function(e) {var n, t = s.getUrl(), o = s.getBody(), r = s.method, i = {};s.headers.forEach(function(t, e) {i[e] = t}), u(t, {body: o, method: r, headers: i}).then(n = function(t) {var n = s.respondWith(t.body, {status: t.statusCode, statusText: f(t.statusMessage)});g(t.headers, function(t, e) {n.headers.set(e, t)}), e(n)}, function(t) {return n(t.response)})})}function k(t) {return (t.client || (s ? A : S))(t)}var I = function(t) {var n = this;this.map = {}, g(t, function(t, e) {return n.append(e, t)})};function L(t, n) {return Object.keys(t).reduce(function(t, e) {return p(n) === p(e) ? e : t}, null)}I.prototype.has = function(t) {return null !== L(this.map, t)} , I.prototype.get = function(t) {var e = this.map[L(this.map, t)];return e ? e.join() : null} , I.prototype.getAll = function(t) {return this.map[L(this.map, t)] || []} , I.prototype.set = function(t, e) {this.map[function(t) {if (/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t)) throw new TypeError("Invalid character in header field name");return f(t)}(L(this.map, t) || t)] = [f(e)]} , I.prototype.append = function(t, e) {var n = this.map[L(this.map, t)];n ? n.push(f(e)) : this.set(t, e)} , I.prototype.delete = function(t) {delete this.map[L(this.map, t)]} , I.prototype.deleteAll = function() {this.map = {}} , I.prototype.forEach = function(n, o) {var r = this;g(this.map, function(t, e) {g(t, function(t) {return n.call(o, t, e, r)})})};var q = function(t, e) {var n, o, r, i = e.url, s = e.headers, u = e.status, a = e.statusText;this.url = i, this.ok = 200 <= u && u < 300, this.status = u || 0, this.statusText = a || "", this.headers = new I(s), d(this.body = t) ? this.bodyText = t : (r = t, "undefined" != typeof Blob && r instanceof Blob && (this.bodyBlob = t, (0 === (o = t).type.indexOf("text") || -1 !== o.type.indexOf("json")) && (this.bodyText = (n = t, new c(function(t) {var e = new FileReader;e.readAsText(n), e.onload = function() {t(e.result)}})))))};q.prototype.blob = function() {return v(this.bodyBlob)} , q.prototype.text = function() {return v(this.bodyText)} , q.prototype.json = function() {return v(this.text(), function(t) {return JSON.parse(t)})} , Object.defineProperty(q.prototype, "data", {get: function() {return this.body}, set: function(t) {this.body = t}});var H = function(t) {var e;this.body = null, this.params = {}, w(this, t, {method: (e = t.method || "GET", e ? e.toUpperCase() : "")}), this.headers instanceof I || (this.headers = new I(this.headers))};H.prototype.getUrl = function() {return $(this)} , H.prototype.getBody = function() {return this.body} , H.prototype.respondWith = function(t, e) {return new q(t,w(e || {}, {url: this.getUrl()}))};var B = {"Content-Type": "application/json;charset=utf-8"};function M(t) {var e = this || {}, n = function(i) {var s = [k], u = [];function t(t) {for (; s.length; ) {var e = s.pop();if (l(e)) {var o = void 0, n = void 0;if (m(o = e.call(i, t, function(t) {return n = t}) || n)) return new c(function(t, n) {u.forEach(function(e) {o = v(o, function(t) {return e.call(i, t) || t}, n)}), v(o, t, n)},i);l(o) && u.unshift(o)} else r = "Invalid interceptor of type " + typeof e + ", must be a function", "undefined" != typeof console && a && console.warn("[VueResource warn]: " + r)}var r}return m(i) || (i = null), t.use = function(t) {s.push(t)} , t}(e.$vm);return function(n) {o.call(arguments, 1).forEach(function(t) {for (var e in t) void 0 === n[e] && (n[e] = t[e])})}(t || {}, e.$options, M.options), M.interceptors.forEach(function(t) {d(t) && (t = M.interceptor[t]), l(t) && n.use(t)}), n(new H(t)).then(function(t) {return t.ok ? t : c.reject(t)}, function(t) {var e;return t instanceof Error && (e = t, "undefined" != typeof console && console.error(e)), c.reject(t)})}function N(n, o, t, r) {var i = this || {}, s = {};return g(t = w({}, N.actions, t), function(t, e) {t = T({url: n, params: w({}, o)}, r, t), s[e] = function() {return (i.$http || M)(function(t, e) {var n, o = w({}, t), r = {};switch (e.length) {case 2:r = e[0], n = e[1];break;case 1:/^(POST|PUT|PATCH)$/i.test(o.method) ? n = e[0] : r = e[0];break;case 0:break;default:throw "Expected up to 2 arguments [params, body], got " + e.length + " arguments"}return o.body = n, o.params = w({}, o.params, r), o}(t, arguments))}}), s}function D(n) {var t, e, o;D.installed || (e = (t = n).config, o = t.nextTick, r = o, a = e.debug || !e.silent, n.url = $, n.http = M, n.resource = N, n.Promise = c, Object.defineProperties(n.prototype, {$url: {get: function() {return b(n.url, this, this.$options.url)}}, $http: {get: function() {return b(n.http, this, this.$options.http)}}, $resource: {get: function() {return n.resource.bind(this)}}, $promise: {get: function() {var e = this;return function(t) {return new n.Promise(t,e)}}}}))}return M.options = {}, M.headers = {put: B, post: B, patch: B, delete: B, common: {Accept: "application/json, text/plain, */*"}, custom: {}}, M.interceptor = {before: function(t) {l(t.before) && t.before.call(this, t)}, method: function(t) {t.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(t.method) && (t.headers.set("X-HTTP-Method-Override", t.method), t.method = "POST")}, jsonp: function(t) {"JSONP" == t.method && (t.client = n)}, json: function(t) {var e = t.headers.get("Content-Type") || "";return m(t.body) && 0 === e.indexOf("application/json") && (t.body = JSON.stringify(t.body)), function(o) {return o.bodyText ? v(o.text(), function(t) {var e, n;if (0 === (o.headers.get("Content-Type") || "").indexOf("application/json") || (n = (e = t).match(/^\s*(\[|\{)/)) && {"[": /]\s*$/, "{": /}\s*$/}[n[1]].test(e)) try {o.body = JSON.parse(t)} catch (t) {o.body = null} else o.body = t;return o}) : o}}, form: function(t) {var e;e = t.body, "undefined" != typeof FormData && e instanceof FormData ? t.headers.delete("Content-Type") : m(t.body) && t.emulateJSON && (t.body = $.params(t.body), t.headers.set("Content-Type", "application/x-www-form-urlencoded"))}, header: function(n) {g(w({}, M.headers.common, n.crossOrigin ? {} : M.headers.custom, M.headers[p(n.method)]), function(t, e) {n.headers.has(e) || n.headers.set(e, t)})}, cors: function(t) {if (s) {var e = $.parse(location.href), n = $.parse(t.getUrl());n.protocol === e.protocol && n.host === e.host || (t.crossOrigin = !0, t.emulateHTTP = !1, R || (t.client = U))}}}, M.interceptors = ["before", "method", "jsonp", "json", "form", "header", "cors"], ["get", "delete", "head", "jsonp"].forEach(function(n) {M[n] = function(t, e) {return this(w(e || {}, {url: t, method: n}))}}), ["post", "put", "patch"].forEach(function(o) {M[o] = function(t, e, n) {return this(w(n || {}, {url: t, method: o, body: e}))}}), N.actions = {get: {method: "GET"}, save: {method: "POST"}, query: {method: "GET"}, update: {method: "PUT"}, remove: {method: "DELETE"}, delete: {method: "DELETE"}}, "undefined" != typeof window && window.Vue && window.Vue.use(D), D});