文件
mashangyoujiu/Public/flow/js/vue-resource.js

586 行
24 KiB
JavaScript
可执行文件

/*!
* 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
});