UNPKG

koa-quick-service

Version:
217 lines (188 loc) 8.29 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.DELETE = exports.PATCH = exports.PUT = exports.POST = exports.GET = undefined; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var GET = exports.GET = function () { var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(url) { var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt('return', new _promise2.default(function (resolve, reject) { options.url = url; options.method = 'GET'; if (params) { options.qs = params; options.useQuerystring = true; } (0, _request2.default)(options, ajaxCallback(resolve, reject)); })); case 1: case 'end': return _context.stop(); } } }, _callee, this); })); return function GET(_x) { return _ref.apply(this, arguments); }; }(); var POST = exports.POST = function () { var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(url) { var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt('return', new _promise2.default(function (resolve, reject) { options.url = url; options.method = 'POST'; if (params) { if (Buffer.isBuffer(params)) { options.formData = params; } else { options.json = params; } } (0, _request2.default)(options, ajaxCallback(resolve, reject)); })); case 1: case 'end': return _context2.stop(); } } }, _callee2, this); })); return function POST(_x4) { return _ref2.apply(this, arguments); }; }(); var PUT = exports.PUT = function () { var _ref3 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(url) { var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: return _context3.abrupt('return', new _promise2.default(function (resolve, reject) { options.url = url; options.method = 'PUT'; if (params) { if (Buffer.isBuffer(params)) { options.formData = params; } else { options.json = params; } } (0, _request2.default)(options, ajaxCallback(resolve, reject)); })); case 1: case 'end': return _context3.stop(); } } }, _callee3, this); })); return function PUT(_x7) { return _ref3.apply(this, arguments); }; }(); var PATCH = exports.PATCH = function () { var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(url) { var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return _regenerator2.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: return _context4.abrupt('return', new _promise2.default(function (resolve, reject) { options.url = url; options.method = 'PATCH'; if (params) { if (Buffer.isBuffer(params)) { options.formData = params; } else { options.json = params; } } (0, _request2.default)(options, ajaxCallback(resolve, reject)); })); case 1: case 'end': return _context4.stop(); } } }, _callee4, this); })); return function PATCH(_x10) { return _ref4.apply(this, arguments); }; }(); var DELETE = exports.DELETE = function () { var _ref5 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee5(url) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return _regenerator2.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: return _context5.abrupt('return', new _promise2.default(function (resolve, reject) { options.url = url; options.method = 'DELETE'; (0, _request2.default)(options, ajaxCallback(resolve, reject)); })); case 1: case 'end': return _context5.stop(); } } }, _callee5, this); })); return function DELETE(_x13) { return _ref5.apply(this, arguments); }; }(); exports.ajaxCallback = ajaxCallback; var _request = require('request'); var _request2 = _interopRequireDefault(_request); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function ajaxCallback(resolve, reject) { return function (err, httpResponse, body) { if (err) { err.code = httpResponse.statusCode; return reject(err); } if (isSuccess(httpResponse)) { resolve(format(httpResponse, body)); } else { if (typeof body === 'string') { err = new Error(body); err.code = httpResponse.statusCode; } else { err = body; } reject(err); } }; } function isSuccess(httpResponse) { return httpResponse.statusCode >= 200 && httpResponse.statusCode < 300; } function format(response, body) { if (response.headers['content-type'].indexOf('application/json') > -1 && typeof body === 'string') { return JSON.parse(body); } else { return body; } }