index.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. const { status, data } = res.data;
  41. // require login
  42. if (status === -99) {
  43. bridge && bridge.checkLogin(true);
  44. }
  45. else if (status !== 1 && status !== 200) {
  46. const message = data && data.message || res.data.message || res.data.info;
  47. message && notifier && notifier(message, status);
  48. }
  49. }
  50. return res;
  51. });
  52. };
  53. const ProginnRequest = {
  54. create: factory
  55. };
  56. export default ProginnRequest;