diff --git a/dist/index.js b/dist/index.js index 98b5710..30ffabb 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1059,9 +1059,6 @@ break; case 15: - return _context.abrupt("return", Promise.resolve({})); - - case 16: case "end": return _context.stop(); } @@ -1112,13 +1109,9 @@ _createClass(Ajax, [{ key: "request", - value: function request() { + value: function request(config) { var _this = this; - var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { - method: 'GET', - url: '' - }; var current = this.__current || 'get'; var currentRequestPlugins = this["".concat(current, "requestPlugins")] || []; var currentResponsePlugins = this["".concat(current, "responsePlugins")] || []; @@ -1153,7 +1146,10 @@ responseHandler.handle(response); }; - var options = extend(_this.config, config); + var options = extend({ + method: 'GET', + url: '' + }, _this.config, config); options.headers = options.headers || {}; if (options.validateStatus) { @@ -1207,16 +1203,7 @@ if (options.responseType) { - try { - xhr.responseType = options.responseType; - } catch (e) { - // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. - // But, this can be suppressed for 'json' type as it can be parsed - // by default 'transformResponse' function. - if (options.responseType !== 'json') { - throw e; - } - } + xhr.responseType = options.responseType; } // Handle progress if needed @@ -1448,9 +1435,10 @@ var retry$1 = plugins.retry; /* eslint-disable arrow-body-style */ - var retry$2 = (function (condition) { - var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2; - var timeout$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5 * 1000; + var retry$2 = (function () { + var times = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 2; + var timeout$1 = arguments.length > 1 ? arguments[1] : undefined; + var condition = arguments.length > 2 ? arguments[2] : undefined; return function (target, key, descriptor) { timeout(timeout$1)(target, key, descriptor); use('response', retry$1(condition, times), 1)(target, key, descriptor); diff --git a/dist/index.js.map b/dist/index.js.map index e9ea59c..2d7f2c9 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../node_modules/regenerator-runtime/runtime.js","../src/plugin.ts","../src/utils.ts","../src/ajax.ts","../src/plugins/request.ts","../src/plugins/response.ts","../src/plugins/retry.ts","../src/plugins/index.ts","../src/decorators/use.ts","../src/decorators/timeout.ts","../src/decorators/retry.ts","../src/decorators/index.ts","../src/client.ts"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/**\n * Plugin Object to deal with plugins.\n *\n * @file src/plugin.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport Plugin from 'plugin';\n\nexport default class implements Plugin {\n index = 0;\n\n source: any = null;\n\n stack: Function[] = [];\n\n constructor(plugins: Array = []) {\n this.stack = plugins;\n }\n\n /**\n * push handler to stack\n * @param fn function to handle source\n */\n use(fn: Function): this {\n if (typeof fn !== 'function') {\n throw new Error('The plugin should be a function.');\n }\n\n this.stack.push(fn);\n\n return this;\n }\n\n /**\n * remove the index plugin\n * @param index the sequense of a plugin\n */\n abort(index?: number): this {\n if (index) {\n this.stack.splice(index, 1);\n } else {\n this.stack.pop();\n }\n\n return this;\n }\n\n /**\n * start execute plugins\n * @param source resource to be handled\n */\n handle(source: any): void {\n this.index = 0;\n this.source = source;\n\n const next = (err?: Error): void => {\n const fn = this.stack[this.index++];\n\n if (!fn) {\n return;\n }\n\n this.__call(fn, next, err);\n };\n\n next();\n }\n\n\n /**\n * execute every plugin funciton\n * @param fn the plugin funciton\n * @param err error\n * @param next next plugin function\n */\n __call(fn: Function, next: Function, err?: Error): void {\n // catch error to next\n try {\n if (err && fn.length === 3) {\n fn(err, this.source, next);\n return;\n }\n if (!err && fn.length < 3) {\n fn(this.source, next);\n return;\n }\n } catch (e) {\n err = e; // eslint-disable-line\n }\n\n next(err);\n }\n}\n","/**\n * Utils\n *\n * @file src/utils.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { TSObject, MethodPlugin } from 'ajax';\nimport {\n ParseHeaders,\n Extend,\n IsObject,\n IsUndefined,\n GetQuery,\n GetUTCTime,\n GenerateRequestId,\n PromiseRace,\n GetPlugins\n} from 'utils';\n\n// parseHeaders https://github.com/axios/helper/parseHeaders.js\nexport const parseHeaders: ParseHeaders = (headers: string) => {\n const parsed: TSObject = {};\n const ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n ];\n\n if (headers) {\n headers.split('\\n').forEach((line) => {\n const i = line.indexOf(':');\n const key = line.substr(0, i).trim().toLowerCase();\n const val = line.substr(i + 1).trim();\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) > -1) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? `${parsed[key]}, ${val}` : val;\n }\n }\n });\n }\n\n return parsed;\n};\n\nexport const extend: Extend = (...args: Array>) => {\n const obj = {};\n for (let i = 0; i < args.length; i++) {\n const source = args[i];\n for (const prop in source) {\n if ({}.hasOwnProperty.call(source, prop)) {\n (obj as any)[prop] = (source as any)[prop];\n }\n }\n }\n return obj;\n};\n\nexport const isObject: IsObject = (obj: any) => obj === Object(obj);\n\nexport const isUndefined: IsUndefined = (obj: any) => obj === void 0;\n\nexport const getQuery: GetQuery = (obj: TSObject) => {\n let query = '';\n\n if (!isObject(obj) || !Object.keys(obj).length) {\n return query;\n }\n\n Object.keys(obj).forEach((key) => {\n const str = `&${key}=${obj[key]}`;\n query += str;\n });\n\n return query.replace('&', '?');\n};\n\nexport const generateRequestId: GenerateRequestId = () => {\n const chunk = (): string => {\n let v = (~~(Math.random() * 0xffff)).toString(16);\n if (v.length < 4) {\n v += new Array(4 - v.length + 1).join('0');\n }\n return v;\n };\n\n const a = chunk();\n const b = chunk();\n const c = chunk();\n const d = chunk();\n const e = chunk();\n const f = chunk();\n const g = chunk();\n const h = chunk();\n\n return `${a + b}-${c}-${d}-${e}-${f}${g}${h}`;\n};\n\nexport const getUTCTime: GetUTCTime = (date: Date) => date.toISOString().replace(/\\.\\d+Z$/, 'Z');\n\nexport const promiseRace: PromiseRace = async (promise: Function, n: number) => {\n for (let i = 0; i < n; i++) {\n try {\n return await promise();\n } catch (error) {\n if (i === n - 1) {\n return Promise.reject(error);\n }\n }\n }\n return Promise.resolve({});\n};\n\nexport const getPlugins: GetPlugins = (base: Array, extra: Array) => {\n const plugins = [...base];\n extra.forEach(item => plugins.splice(item.sequence || plugins.length, 0, ...item.plugins));\n return plugins;\n};\n","/**\n * Ajax core object.\n *\n * @file src/ajax.ts\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport {Options, Response, TSObject} from 'ajax';\nimport Plugin from './plugin';\nimport * as utils from './utils';\n\nexport default class Ajax {\n config: Options | TSObject;\n\n __current: string;\n\n [key: string]: any;\n\n requestPlugins: Array = [];\n\n responsePlugins: Array = [];\n\n constructor(config?: Options) {\n this.config = config;\n }\n\n /**\n * Request in XMLHttprequest\n *\n * @param {meta.AjaxOption} options configs\n * @param {meta.AjaxOption.String} options.method request method\n * @param {meta.AjaxOption.String} options.url request url\n * @param {meta.AjaxOption.any} options.data request data\n * @param {meta.AjaxOption.Object} options.headers request headers\n * @param {meta.AjaxOption.Number} options.timeout request timeout\n * @param {meta.AjaxOption.Func} options.validateStatus response validateStatus\n * @param {meta.AjaxOption.String} options.responseType response responseType\n * @param {meta.AjaxOption.Bool} options.withCredentials request cors\n * @param {meta.AjaxOption.Func} options.onDownloadProgress download progress\n * @param {meta.AjaxOption.Func} options.onUploadProgress upload progress\n * @param {meta.AjaxOption.Func} options.onabort abort handler\n * @param {meta.AjaxOption.Func} options.onerror error handler\n * @param {meta.AjaxOption.Func} options.ontimeout timeout handler\n *\n * @return {meta.requseter}\n */\n request(config: Options = {method: 'GET', url: ''}): Promise {\n const current = this.__current || 'get';\n const currentRequestPlugins = this[`${current}requestPlugins`] || [];\n const currentResponsePlugins = this[`${current}responsePlugins`] || [];\n const requestHandler = new Plugin(utils.getPlugins(this.requestPlugins, currentRequestPlugins));\n const responseHandler = new Plugin(utils.getPlugins(this.responsePlugins, currentResponsePlugins));\n\n // Clear the current\n this.__current = '';\n\n return new Promise((resolve, reject) => {\n // response handler\n const resultHandler = (xhr: XMLHttpRequest, opt: Options): void => {\n // Prepare the response\n const responseHeaders = utils.parseHeaders(xhr.getAllResponseHeaders());\n\n const response: Response = {\n data: xhr.responseText,\n status: xhr.status === 1223 ? 204 : xhr.status,\n statusText: xhr.status === 1223 ? 'No Content' : xhr.statusText,\n headers: responseHeaders,\n config: opt,\n request: xhr\n };\n\n // use plugin to handle response\n responseHandler.use((res: Response) => {\n responseHandler.abort();\n\n if (opt.validateStatus && opt.validateStatus(res.status)) {\n resolve(res.data);\n } else {\n reject(res.data);\n }\n });\n\n // to handle response plugins\n responseHandler.handle(response);\n };\n\n const options = utils.extend(this.config, config) as Options;\n\n options.headers = options.headers || {};\n\n if (options.validateStatus) {\n options.validateStatus = options.validateStatus;\n } else {\n options.validateStatus = ((status: number): boolean => status >= 200 && status <= 300);\n }\n\n // to handle request plugins\n requestHandler.handle(options);\n\n const xhr = new XMLHttpRequest();\n\n xhr.open(options.method.toUpperCase(), options.url, true);\n\n // Set timeout handler\n xhr.timeout = options.timeout || 0;\n\n // Use onloadend to handle result\n // IE & Edge may not support\n if (!utils.isUndefined(xhr.onloadend)) {\n xhr.onloadend = (): void => resultHandler(xhr, options);\n } else {\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === 4) {\n resultHandler(xhr, options);\n }\n };\n }\n\n // Handle abort\n xhr.onabort = options.onabort || null;\n\n // Handle low level network errors\n xhr.onerror = options.onerror || null;\n\n // Handle timeout\n xhr.ontimeout = options.ontimeout || null;\n\n // Add headers to the request\n Object.keys(options.headers).forEach((key: string) => {\n if (typeof options.data === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete options.headers[key];\n } else {\n // Otherwise add header to the request\n xhr.setRequestHeader(key, options.headers[key]);\n }\n });\n\n // Add withCredentials to request if needed\n if (options.withCredentials) {\n xhr.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (options.responseType) {\n try {\n xhr.responseType = options.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed\n // by default 'transformResponse' function.\n if (options.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof options.onDownloadProgress === 'function') {\n xhr.addEventListener('progress', options.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof options.onUploadProgress === 'function' && xhr.upload) {\n xhr.upload.addEventListener('progress', options.onUploadProgress);\n }\n\n // Send the request\n xhr.send(options.data);\n });\n }\n}\n","/**\n * a request plugin\n *\n * @file src/plugins/request.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { Options } from 'ajax';\nimport * as utils from '../utils';\n\nexport default (): Function => (req: Options, next: Function): void => {\n // set default request headers\n req.headers = req.headers || {};\n\n if (utils.isObject(req.data) && !(req.data instanceof FormData)) {\n req.headers['Content-Type'] = 'application/json;charset=utf-8';\n req.data = JSON.stringify(req.data);\n }\n\n // set requester info\n req.headers['X-Request-By'] = 'RestClient';\n\n // set csrftoken\n req.headers.csrftoken = new Date().getTime();\n\n // to handle next plugin\n next();\n};\n","/**\n * a response plugin\n *\n * @file src/plugins/response.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { Options } from 'ajax';\n\nexport default (): Function => (res: Options, next: Function): void => {\n if (typeof res.data === 'string') {\n try {\n res.data = JSON.parse(res.data);\n } catch (e) { /* Ignore */ }\n }\n\n next();\n};\n","/**\n * a response plugin\n *\n * @file src/plugins/response.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { Response, Options } from 'ajax';\nimport Ajax from '../ajax';\nimport response from './response';\nimport {promiseRace} from '../utils';\n\n/* eslint-disable arrow-body-style */\nexport default (condition: Function, times: number): Function => {\n return async (res: Response, next: Function): Promise => {\n const {config, status} = res;\n const ajax = new Ajax();\n ajax.responsePlugins.push(response());\n const executable = condition ? condition(res) : !config.validateStatus(status);\n\n if (executable) {\n try {\n res.data = await promiseRace(ajax.request.bind(ajax, config as Options), times);\n res.status = 200;\n } catch (e) {\n res.data = e;\n }\n }\n\n next();\n };\n};\n","/**\n * Main entry\n *\n * @file src/index.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\nimport request from './request';\nimport response from './response';\nimport retry from './retry';\n\nexport default {\n retry,\n request,\n response\n};\n// # sourceMappingURL=index.js.map\n","/**\n * Provide the use decorator to use a plugin\n *\n * @file src/decorators/use.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { PluginType } from 'decorator';\nimport { Options } from 'ajax';\n\n/* eslint-disable arrow-body-style */\nexport default (type: PluginType, plugin: Function | Array, sequence?: number): any => {\n return (target: any, key?: string, descriptor?: PropertyDescriptor): any => {\n if (['req', 'request', 'res', 'response'].indexOf(type) === -1) {\n throw new Error('Plugin type is valid!');\n }\n\n const pluginType = type === 'req' || type === 'request' ? 'requestPlugins' : 'responsePlugins';\n const targetPlugins = typeof plugin === 'function' ? [plugin] : [...plugin];\n\n if (typeof target === 'function') {\n return class extends target {\n constructor(config?: Options) {\n super(config);\n\n this[pluginType].splice(sequence || this[pluginType].length, 0, ...targetPlugins);\n }\n };\n }\n\n if (target[`__${key}__${pluginType}`]) {\n target[`__${key}__${pluginType}`].push({plugins: targetPlugins, sequence});\n } else {\n Object.defineProperty(target, `__${key}__${pluginType}`, {\n value: [{plugins: targetPlugins, sequence}]\n });\n }\n\n const fn = descriptor.value;\n Object.defineProperty(descriptor, 'value', {\n value(...args: Array[]): Function {\n return target.__decoratorMiddleware.apply(this, [fn, `__${key}__`, ...args]);\n }\n });\n\n return undefined;\n };\n};\n","/**\n * Provide the timeout decorator\n *\n * @file src/decorators/retry.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { Options } from 'ajax';\nimport use from './use';\n\n/* eslint-disable arrow-body-style */\nexport default (timeout: number = 15 * 1000): Function => {\n return (target: any, key?: string, descriptor?: PropertyDescriptor): void => {\n use('request', (req: Options, next: Function): void => {\n req.timeout = timeout;\n next();\n })(target, key, descriptor);\n };\n};\n","/**\n * Provide the retry decorator\n *\n * @file src/decorators/retry.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport use from './use';\nimport timeoutDecorator from './timeout';\nimport plugins from '../plugins';\n\nconst {retry} = plugins;\n\n/* eslint-disable arrow-body-style */\nexport default (condition?: Function, times = 2, timeout: number = 5 * 1000): Function => {\n return (target: any, key?: string, descriptor?: PropertyDescriptor): void => {\n timeoutDecorator(timeout)(target, key, descriptor);\n use('response', retry(condition, times), 1)(target, key, descriptor);\n };\n};\n","/**\n * Main entry\n *\n * @file src/index.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\nimport use from './use';\nimport retry from './retry';\nimport timeout from './timeout';\n\nexport default {\n use,\n retry,\n timeout\n};\n// # sourceMappingURL=index.js.map\n","/**\n * Abstract class\n *\n * @file src/client.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { Options, TSObject } from 'ajax';\nimport { Client } from 'client';\nimport Ajax from './ajax';\nimport plugins from './plugins';\nimport decorators from './decorators';\nimport * as utils from './utils';\n\nconst {request: requestPlugin, response: responsePlugin} = plugins;\nconst {use} = decorators;\n\n@use('request', requestPlugin())\n@use('response', responsePlugin())\nexport default class RestClient extends Ajax implements Client {\n __bulkRequest(url: string, method: string, config = {}, querys?: TSObject, data?: TSObject): Promise {\n const options = utils.extend({\n url,\n method\n }, config);\n\n if (querys) {\n options.url += utils.getQuery(querys);\n }\n\n if (data) {\n options.data = data;\n }\n\n return this.request(options as Options);\n }\n\n head(url: string, config = {}): Promise {\n return this.__bulkRequest(url, 'head', config);\n }\n\n options(url: string, config = {}): Promise {\n return this.__bulkRequest(url, 'options', config);\n }\n\n patch(url: string, data?: TSObject, config = {}): Promise {\n return this.__bulkRequest(url, 'patch', config, undefined, data);\n }\n\n get(url: string, querys?: TSObject, config = {}): Promise {\n return this.__bulkRequest(url, 'get', config, querys);\n }\n\n delete(url: string, querys?: TSObject, config = {}): Promise {\n return this.__bulkRequest(url, 'delete', config, querys);\n }\n\n post(url: string, data?: TSObject, config = {}): Promise {\n return this.__bulkRequest(url, 'post', config, undefined, data);\n }\n\n put(url: string, data?: TSObject, config = {}): Promise {\n return this.__bulkRequest(url, 'put', config, undefined, data);\n }\n\n __decoratorMiddleware(fn: Function, key: string, ...args: Array[]): Promise {\n this.__current = key;\n return fn.apply(this, args);\n }\n}\n"],"names":["undefined","plugins","stack","fn","Error","push","index","splice","pop","source","next","err","__call","length","e","parseHeaders","headers","parsed","ignoreDuplicateOf","split","forEach","line","i","indexOf","key","substr","trim","toLowerCase","val","concat","extend","obj","prop","hasOwnProperty","call","isObject","Object","isUndefined","getQuery","query","keys","str","replace","promiseRace","promise","n","Promise","reject","resolve","getPlugins","base","extra","item","sequence","Ajax","config","method","url","current","__current","currentRequestPlugins","currentResponsePlugins","requestHandler","Plugin","utils","requestPlugins","responseHandler","responsePlugins","resultHandler","xhr","opt","responseHeaders","getAllResponseHeaders","response","data","responseText","status","statusText","request","use","res","abort","validateStatus","handle","options","XMLHttpRequest","open","toUpperCase","timeout","onloadend","onreadystatechange","readyState","onabort","onerror","ontimeout","setRequestHeader","withCredentials","responseType","onDownloadProgress","addEventListener","onUploadProgress","upload","send","req","FormData","JSON","stringify","csrftoken","Date","getTime","parse","condition","times","ajax","executable","bind","retry","type","plugin","target","descriptor","pluginType","targetPlugins","defineProperty","value","args","__decoratorMiddleware","apply","timeoutDecorator","requestPlugin","responsePlugin","decorators","RestClient","querys","__bulkRequest"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../node_modules/regenerator-runtime/runtime.js","../src/plugin.ts","../src/utils.ts","../src/ajax.ts","../src/plugins/request.ts","../src/plugins/response.ts","../src/plugins/retry.ts","../src/plugins/index.ts","../src/decorators/use.ts","../src/decorators/timeout.ts","../src/decorators/retry.ts","../src/decorators/index.ts","../src/client.ts"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/**\n * Plugin Object to deal with plugins.\n *\n * @file src/plugin.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport Plugin from 'plugin';\n\nexport default class implements Plugin {\n index = 0;\n\n source: any = null;\n\n stack: Function[] = [];\n\n constructor(plugins: Array = []) {\n this.stack = plugins;\n }\n\n /**\n * push handler to stack\n * @param fn function to handle source\n */\n use(fn: Function): this {\n if (typeof fn !== 'function') {\n throw new Error('The plugin should be a function.');\n }\n\n this.stack.push(fn);\n\n return this;\n }\n\n /**\n * remove the index plugin\n * @param index the sequense of a plugin\n */\n abort(index?: number): this {\n if (index) {\n this.stack.splice(index, 1);\n } else {\n this.stack.pop();\n }\n\n return this;\n }\n\n /**\n * start execute plugins\n * @param source resource to be handled\n */\n handle(source: any): void {\n this.index = 0;\n this.source = source;\n\n const next = (err?: Error): void => {\n const fn = this.stack[this.index++];\n\n if (!fn) {\n return;\n }\n\n this.__call(fn, next, err);\n };\n\n next();\n }\n\n\n /**\n * execute every plugin funciton\n * @param fn the plugin funciton\n * @param err error\n * @param next next plugin function\n */\n __call(fn: Function, next: Function, err?: Error): void {\n // catch error to next\n try {\n if (err && fn.length === 3) {\n fn(err, this.source, next);\n return;\n }\n if (!err && fn.length < 3) {\n fn(this.source, next);\n return;\n }\n } catch (e) {\n err = e; // eslint-disable-line\n }\n\n next(err);\n }\n}\n","/**\n * Utils\n *\n * @file src/utils.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { TSObject, MethodPlugin } from 'ajax';\nimport {\n ParseHeaders,\n Extend,\n IsObject,\n IsUndefined,\n GetQuery,\n GetUTCTime,\n GenerateRequestId,\n PromiseRace,\n GetPlugins\n} from 'utils';\n\n// parseHeaders https://github.com/axios/helper/parseHeaders.js\nexport const parseHeaders: ParseHeaders = (headers: string) => {\n const parsed: TSObject = {};\n const ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n ];\n\n if (headers) {\n headers.split('\\n').forEach((line) => {\n const i = line.indexOf(':');\n const key = line.substr(0, i).trim().toLowerCase();\n const val = line.substr(i + 1).trim();\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) > -1) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? `${parsed[key]}, ${val}` : val;\n }\n }\n });\n }\n\n return parsed;\n};\n\nexport const extend: Extend = (...args: Array>) => {\n const obj = {};\n for (let i = 0; i < args.length; i++) {\n const source = args[i];\n for (const prop in source) {\n if ({}.hasOwnProperty.call(source, prop)) {\n (obj as any)[prop] = (source as any)[prop];\n }\n }\n }\n return obj;\n};\n\nexport const isObject: IsObject = (obj: any) => obj === Object(obj);\n\nexport const isUndefined: IsUndefined = (obj: any) => obj === void 0;\n\nexport const getQuery: GetQuery = (obj: TSObject) => {\n let query = '';\n\n if (!isObject(obj) || !Object.keys(obj).length) {\n return query;\n }\n\n Object.keys(obj).forEach((key) => {\n const str = `&${key}=${obj[key]}`;\n query += str;\n });\n\n return query.replace('&', '?');\n};\n\nexport const generateRequestId: GenerateRequestId = () => {\n const chunk = (): string => {\n let v = (~~(Math.random() * 0xffff)).toString(16);\n if (v.length < 4) {\n v += new Array(4 - v.length + 1).join('0');\n }\n return v;\n };\n\n const a = chunk();\n const b = chunk();\n const c = chunk();\n const d = chunk();\n const e = chunk();\n const f = chunk();\n const g = chunk();\n const h = chunk();\n\n return `${a + b}-${c}-${d}-${e}-${f}${g}${h}`;\n};\n\nexport const getUTCTime: GetUTCTime = (date: Date) => date.toISOString().replace(/\\.\\d+Z$/, 'Z');\n\nexport const promiseRace: PromiseRace = async (promise: Function, n: number) => {\n for (let i = 0; i < n; i++) {\n try {\n return await promise();\n } catch (error) {\n if (i === n - 1) {\n return Promise.reject(error);\n }\n }\n }\n};\n\nexport const getPlugins: GetPlugins = (base: Array, extra: Array) => {\n const plugins = [...base];\n extra.forEach(item => plugins.splice(item.sequence || plugins.length, 0, ...item.plugins));\n return plugins;\n};\n","/**\n * Ajax core object.\n *\n * @file src/ajax.ts\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport {Options, Response, TSObject} from 'ajax';\nimport Plugin from './plugin';\nimport * as utils from './utils';\n\nexport default class Ajax {\n config: Options | TSObject;\n\n __current: string;\n\n [key: string]: any;\n\n requestPlugins: Array = [];\n\n responsePlugins: Array = [];\n\n constructor(config?: Options) {\n this.config = config;\n }\n\n /**\n * Request in XMLHttprequest\n *\n * @param {meta.AjaxOption} options configs\n * @param {meta.AjaxOption.String} options.method request method\n * @param {meta.AjaxOption.String} options.url request url\n * @param {meta.AjaxOption.any} options.data request data\n * @param {meta.AjaxOption.Object} options.headers request headers\n * @param {meta.AjaxOption.Number} options.timeout request timeout\n * @param {meta.AjaxOption.Func} options.validateStatus response validateStatus\n * @param {meta.AjaxOption.String} options.responseType response responseType\n * @param {meta.AjaxOption.Bool} options.withCredentials request cors\n * @param {meta.AjaxOption.Func} options.onDownloadProgress download progress\n * @param {meta.AjaxOption.Func} options.onUploadProgress upload progress\n * @param {meta.AjaxOption.Func} options.onabort abort handler\n * @param {meta.AjaxOption.Func} options.onerror error handler\n * @param {meta.AjaxOption.Func} options.ontimeout timeout handler\n *\n * @return {meta.requseter}\n */\n request(config: Options): Promise {\n const current = this.__current || 'get';\n const currentRequestPlugins = this[`${current}requestPlugins`] || [];\n const currentResponsePlugins = this[`${current}responsePlugins`] || [];\n const requestHandler = new Plugin(utils.getPlugins(this.requestPlugins, currentRequestPlugins));\n const responseHandler = new Plugin(utils.getPlugins(this.responsePlugins, currentResponsePlugins));\n\n // Clear the current\n this.__current = '';\n\n return new Promise((resolve, reject) => {\n // response handler\n const resultHandler = (xhr: XMLHttpRequest, opt: Options): void => {\n // Prepare the response\n const responseHeaders = utils.parseHeaders(xhr.getAllResponseHeaders());\n\n const response: Response = {\n data: xhr.responseText,\n status: xhr.status === 1223 ? 204 : xhr.status,\n statusText: xhr.status === 1223 ? 'No Content' : xhr.statusText,\n headers: responseHeaders,\n config: opt,\n request: xhr\n };\n\n // use plugin to handle response\n responseHandler.use((res: Response) => {\n responseHandler.abort();\n\n if (opt.validateStatus && opt.validateStatus(res.status)) {\n resolve(res.data);\n } else {\n reject(res.data);\n }\n });\n\n // to handle response plugins\n responseHandler.handle(response);\n };\n\n const options = utils.extend({method: 'GET', url: ''}, this.config, config) as Options;\n\n options.headers = options.headers || {};\n\n if (options.validateStatus) {\n options.validateStatus = options.validateStatus;\n } else {\n options.validateStatus = ((status: number): boolean => status >= 200 && status <= 300);\n }\n\n // to handle request plugins\n requestHandler.handle(options);\n\n const xhr = new XMLHttpRequest();\n\n xhr.open(options.method.toUpperCase(), options.url, true);\n\n // Set timeout handler\n xhr.timeout = options.timeout || 0;\n\n // Use onloadend to handle result\n // IE & Edge may not support\n if (!utils.isUndefined(xhr.onloadend)) {\n xhr.onloadend = (): void => resultHandler(xhr, options);\n } else {\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === 4) {\n resultHandler(xhr, options);\n }\n };\n }\n\n // Handle abort\n xhr.onabort = options.onabort || null;\n\n // Handle low level network errors\n xhr.onerror = options.onerror || null;\n\n // Handle timeout\n xhr.ontimeout = options.ontimeout || null;\n\n // Add headers to the request\n Object.keys(options.headers).forEach((key: string) => {\n if (typeof options.data === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete options.headers[key];\n } else {\n // Otherwise add header to the request\n xhr.setRequestHeader(key, options.headers[key]);\n }\n });\n\n // Add withCredentials to request if needed\n if (options.withCredentials) {\n xhr.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (options.responseType) {\n xhr.responseType = options.responseType;\n }\n\n // Handle progress if needed\n if (typeof options.onDownloadProgress === 'function') {\n xhr.addEventListener('progress', options.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof options.onUploadProgress === 'function' && xhr.upload) {\n xhr.upload.addEventListener('progress', options.onUploadProgress);\n }\n\n // Send the request\n xhr.send(options.data);\n });\n }\n}\n","/**\n * a request plugin\n *\n * @file src/plugins/request.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { Options } from 'ajax';\nimport * as utils from '../utils';\n\nexport default (): Function => (req: Options, next: Function): void => {\n // set default request headers\n req.headers = req.headers || {};\n\n if (utils.isObject(req.data) && !(req.data instanceof FormData)) {\n req.headers['Content-Type'] = 'application/json;charset=utf-8';\n req.data = JSON.stringify(req.data);\n }\n\n // set requester info\n req.headers['X-Request-By'] = 'RestClient';\n\n // set csrftoken\n req.headers.csrftoken = new Date().getTime();\n\n // to handle next plugin\n next();\n};\n","/**\n * a response plugin\n *\n * @file src/plugins/response.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { Options } from 'ajax';\n\nexport default (): Function => (res: Options, next: Function): void => {\n if (typeof res.data === 'string') {\n try {\n res.data = JSON.parse(res.data);\n } catch (e) { /* Ignore */ }\n }\n\n next();\n};\n","/**\n * a response plugin\n *\n * @file src/plugins/response.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { Response, Options } from 'ajax';\nimport Ajax from '../ajax';\nimport response from './response';\nimport {promiseRace} from '../utils';\n\n/* eslint-disable arrow-body-style */\nexport default (condition: Function, times: number): Function => {\n return async (res: Response, next: Function): Promise => {\n const {config, status} = res;\n const ajax = new Ajax();\n ajax.responsePlugins.push(response());\n const executable = condition ? condition(res) : !config.validateStatus(status);\n\n if (executable) {\n try {\n res.data = await promiseRace(ajax.request.bind(ajax, config as Options), times);\n res.status = 200;\n } catch (e) {\n res.data = e;\n }\n }\n\n next();\n };\n};\n","/**\n * Main entry\n *\n * @file src/index.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\nimport request from './request';\nimport response from './response';\nimport retry from './retry';\n\nexport default {\n retry,\n request,\n response\n};\n// # sourceMappingURL=index.js.map\n","/**\n * Provide the use decorator to use a plugin\n *\n * @file src/decorators/use.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { PluginType } from 'decorator';\nimport { Options } from 'ajax';\n\n/* eslint-disable arrow-body-style */\nexport default (type: PluginType, plugin: Function | Array, sequence?: number): any => {\n return (target: any, key?: string, descriptor?: PropertyDescriptor): any => {\n if (['req', 'request', 'res', 'response'].indexOf(type) === -1) {\n throw new Error('Plugin type is valid!');\n }\n\n const pluginType = type === 'req' || type === 'request' ? 'requestPlugins' : 'responsePlugins';\n const targetPlugins = typeof plugin === 'function' ? [plugin] : [...plugin];\n\n if (typeof target === 'function') {\n return class extends target {\n constructor(config?: Options) {\n super(config);\n\n this[pluginType].splice(sequence || this[pluginType].length, 0, ...targetPlugins);\n }\n };\n }\n\n if (target[`__${key}__${pluginType}`]) {\n target[`__${key}__${pluginType}`].push({plugins: targetPlugins, sequence});\n } else {\n Object.defineProperty(target, `__${key}__${pluginType}`, {\n value: [{plugins: targetPlugins, sequence}]\n });\n }\n\n const fn = descriptor.value;\n Object.defineProperty(descriptor, 'value', {\n value(...args: Array[]): Function {\n return target.__decoratorMiddleware.apply(this, [fn, `__${key}__`, ...args]);\n }\n });\n\n return undefined;\n };\n};\n","/**\n * Provide the timeout decorator\n *\n * @file src/decorators/retry.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { Options } from 'ajax';\nimport use from './use';\n\n/* eslint-disable arrow-body-style */\nexport default (timeout: number = 15 * 1000): Function => {\n return (target: any, key?: string, descriptor?: PropertyDescriptor): void => {\n use('request', (req: Options, next: Function): void => {\n req.timeout = timeout;\n next();\n })(target, key, descriptor);\n };\n};\n","/**\n * Provide the retry decorator\n *\n * @file src/decorators/retry.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport use from './use';\nimport timeoutDecorator from './timeout';\nimport plugins from '../plugins';\n\nconst {retry} = plugins;\n\n/* eslint-disable arrow-body-style */\nexport default (times: number = 2, timeout?: number, condition?: Function): Function => {\n return (target: any, key?: string, descriptor?: PropertyDescriptor): void => {\n timeoutDecorator(timeout)(target, key, descriptor);\n use('response', retry(condition, times), 1)(target, key, descriptor);\n };\n};\n","/**\n * Main entry\n *\n * @file src/index.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\nimport use from './use';\nimport retry from './retry';\nimport timeout from './timeout';\n\nexport default {\n use,\n retry,\n timeout\n};\n// # sourceMappingURL=index.js.map\n","/**\n * Abstract class\n *\n * @file src/client.js\n * @author helianthuswhite(hyz19960229@gmail.com)\n */\n\nimport { Options, TSObject } from 'ajax';\nimport { Client } from 'client';\nimport Ajax from './ajax';\nimport plugins from './plugins';\nimport decorators from './decorators';\nimport * as utils from './utils';\n\nconst {request: requestPlugin, response: responsePlugin} = plugins;\nconst {use} = decorators;\n\n@use('request', requestPlugin())\n@use('response', responsePlugin())\nexport default class RestClient extends Ajax implements Client {\n __bulkRequest(url: string, method: string, config = {}, querys?: TSObject, data?: TSObject): Promise {\n const options = utils.extend({\n url,\n method\n }, config);\n\n if (querys) {\n options.url += utils.getQuery(querys);\n }\n\n if (data) {\n options.data = data;\n }\n\n return this.request(options as Options);\n }\n\n head(url: string, config = {}): Promise {\n return this.__bulkRequest(url, 'head', config);\n }\n\n options(url: string, config = {}): Promise {\n return this.__bulkRequest(url, 'options', config);\n }\n\n patch(url: string, data?: TSObject, config = {}): Promise {\n return this.__bulkRequest(url, 'patch', config, undefined, data);\n }\n\n get(url: string, querys?: TSObject, config = {}): Promise {\n return this.__bulkRequest(url, 'get', config, querys);\n }\n\n delete(url: string, querys?: TSObject, config = {}): Promise {\n return this.__bulkRequest(url, 'delete', config, querys);\n }\n\n post(url: string, data?: TSObject, config = {}): Promise {\n return this.__bulkRequest(url, 'post', config, undefined, data);\n }\n\n put(url: string, data?: TSObject, config = {}): Promise {\n return this.__bulkRequest(url, 'put', config, undefined, data);\n }\n\n __decoratorMiddleware(fn: Function, key: string, ...args: Array[]): Promise {\n this.__current = key;\n return fn.apply(this, args);\n }\n}\n"],"names":["undefined","plugins","stack","fn","Error","push","index","splice","pop","source","next","err","__call","length","e","parseHeaders","headers","parsed","ignoreDuplicateOf","split","forEach","line","i","indexOf","key","substr","trim","toLowerCase","val","concat","extend","obj","prop","hasOwnProperty","call","isObject","Object","isUndefined","getQuery","query","keys","str","replace","promiseRace","promise","n","Promise","reject","getPlugins","base","extra","item","sequence","Ajax","config","current","__current","currentRequestPlugins","currentResponsePlugins","requestHandler","Plugin","utils","requestPlugins","responseHandler","responsePlugins","resolve","resultHandler","xhr","opt","responseHeaders","getAllResponseHeaders","response","data","responseText","status","statusText","request","use","res","abort","validateStatus","handle","options","method","url","XMLHttpRequest","open","toUpperCase","timeout","onloadend","onreadystatechange","readyState","onabort","onerror","ontimeout","setRequestHeader","withCredentials","responseType","onDownloadProgress","addEventListener","onUploadProgress","upload","send","req","FormData","JSON","stringify","csrftoken","Date","getTime","parse","condition","times","ajax","executable","bind","retry","type","plugin","target","descriptor","pluginType","targetPlugins","defineProperty","value","args","__decoratorMiddleware","apply","timeoutDecorator","requestPlugin","responsePlugin","decorators","RestClient","querys","__bulkRequest"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 256baf0..37c5e67 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@baiducloud/restclient", - "version": "1.0.1", + "version": "1.0.2", "description": "Restful HTTP Client for broswer.", "main": "dist/index.js", "typings": "types/main.d.ts", diff --git a/src/decorators/retry.ts b/src/decorators/retry.ts index fabc497..a81d828 100644 --- a/src/decorators/retry.ts +++ b/src/decorators/retry.ts @@ -12,7 +12,7 @@ import plugins from '../plugins'; const {retry} = plugins; /* eslint-disable arrow-body-style */ -export default (times = 2, timeout: number = 5 * 1000, condition?: Function): Function => { +export default (times: number = 2, timeout?: number, condition?: Function): Function => { return (target: any, key?: string, descriptor?: PropertyDescriptor): void => { timeoutDecorator(timeout)(target, key, descriptor); use('response', retry(condition, times), 1)(target, key, descriptor);