index.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. import Axios from 'axios';
  11. import qs from 'querystring';
  12. const factory = (opts) => {
  13. const { baseURL, notifier, bridge } = opts || {};
  14. const axios = Axios.create({
  15. baseURL,
  16. withCredentials: true
  17. });
  18. return (opts) => __awaiter(void 0, void 0, void 0, function* () {
  19. const { url, method, query, data, dataType = 'form', headers = {} } = opts;
  20. let contentType;
  21. if (dataType === 'form') {
  22. contentType = 'application/x-www-form-urlencoded';
  23. }
  24. else if (dataType === 'json') {
  25. contentType = 'application/json';
  26. }
  27. if (method === 'POST') {
  28. Object.assign(headers, {
  29. 'Content-Type': contentType
  30. });
  31. }
  32. const res = yield axios({
  33. url,
  34. method,
  35. params: query,
  36. headers,
  37. data: data && (dataType === 'form' ? qs.stringify(data) : JSON.stringify(data))
  38. });
  39. if (res.data) {
  40. // require login
  41. if (res.data.status === -99) {
  42. bridge && bridge.checkLogin(true);
  43. }
  44. else if (res.data.status !== 1 && res.data.status !== 200) {
  45. const message = res.data.data && res.data.data.message || res.data.message || res.data.info;
  46. message && notifier && notifier(message);
  47. }
  48. }
  49. return res;
  50. });
  51. };
  52. const ProginnRequest = {
  53. create: factory
  54. };
  55. export default ProginnRequest;