UNPKG

4.9 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.fetchPageThunk = exports.graphqlThunk = exports.configurefetchPageThunk = exports.configureGraphqlThunk = void 0;
9
10var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread"));
11
12var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
13
14var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
15
16var _graphqlCall = _interopRequireDefault(require("@sharyn/shared/graphql-call"));
17
18// flow-disable-next-line
19var configuredGraphqlRequest;
20var configuredGraphqlSuccess;
21var configuredGraphqlFailure;
22var configuredFetchPageRequest;
23var configuredFetchPageSuccess;
24var configuredFetchPageFailure;
25
26var configureGraphqlThunk = function configureGraphqlThunk(_ref) {
27 var request = _ref.request,
28 success = _ref.success,
29 failure = _ref.failure;
30 configuredGraphqlRequest = request;
31 configuredGraphqlSuccess = success;
32 configuredGraphqlFailure = failure;
33};
34
35exports.configureGraphqlThunk = configureGraphqlThunk;
36
37var configurefetchPageThunk = function configurefetchPageThunk(_ref2) {
38 var request = _ref2.request,
39 success = _ref2.success,
40 failure = _ref2.failure;
41 configuredFetchPageRequest = request;
42 configuredFetchPageSuccess = success;
43 configuredFetchPageFailure = failure;
44};
45
46exports.configurefetchPageThunk = configurefetchPageThunk;
47
48var graphqlThunk = function graphqlThunk(_ref3) {
49 var urlBase = _ref3.urlBase,
50 urlPath = _ref3.urlPath,
51 authorizationBearer = _ref3.authorizationBearer,
52 urlParams = _ref3.urlParams,
53 mapUrlParams = _ref3.mapUrlParams,
54 fields = _ref3.fields,
55 mapFields = _ref3.mapFields,
56 query = _ref3.query,
57 mapResp = _ref3.mapResp,
58 asyncKey = _ref3.asyncKey,
59 _ref3$request = _ref3.request,
60 request = _ref3$request === void 0 ? configuredGraphqlRequest : _ref3$request,
61 _ref3$success = _ref3.success,
62 success = _ref3$success === void 0 ? configuredGraphqlSuccess : _ref3$success,
63 _ref3$failure = _ref3.failure,
64 failure = _ref3$failure === void 0 ? configuredGraphqlFailure : _ref3$failure,
65 _ref3$throwErr = _ref3.throwErr,
66 throwErr = _ref3$throwErr === void 0 ? true : _ref3$throwErr;
67 return (
68 /*#__PURE__*/
69 function () {
70 var _ref4 = (0, _asyncToGenerator2.default)(
71 /*#__PURE__*/
72 _regenerator.default.mark(function _callee(dispatch) {
73 var data;
74 return _regenerator.default.wrap(function _callee$(_context) {
75 while (1) {
76 switch (_context.prev = _context.next) {
77 case 0:
78 if (request && success && failure) {
79 _context.next = 2;
80 break;
81 }
82
83 throw Error('You need to configure a request, success, and failure action creator before using graphqlThunk');
84
85 case 2:
86 dispatch(request(asyncKey));
87 _context.prev = 3;
88 _context.next = 6;
89 return (0, _graphqlCall.default)({
90 urlBase: urlBase,
91 urlPath: urlPath,
92 authorizationBearer: authorizationBearer,
93 urlParams: urlParams,
94 mapUrlParams: mapUrlParams,
95 fields: fields,
96 mapFields: mapFields,
97 query: query,
98 mapResp: mapResp
99 });
100
101 case 6:
102 data = _context.sent;
103 dispatch(success({
104 data: data,
105 asyncKey: asyncKey
106 }));
107 _context.next = 15;
108 break;
109
110 case 10:
111 _context.prev = 10;
112 _context.t0 = _context["catch"](3);
113 dispatch(failure({
114 error: _context.t0,
115 asyncKey: asyncKey
116 }));
117
118 if (!throwErr) {
119 _context.next = 15;
120 break;
121 }
122
123 throw _context.t0;
124
125 case 15:
126 case "end":
127 return _context.stop();
128 }
129 }
130 }, _callee, this, [[3, 10]]);
131 }));
132
133 return function (_x) {
134 return _ref4.apply(this, arguments);
135 };
136 }()
137 );
138};
139
140exports.graphqlThunk = graphqlThunk;
141
142var fetchPageThunk = function fetchPageThunk(options) {
143 return graphqlThunk((0, _objectSpread2.default)({}, options, {
144 asyncKey: 'page',
145 request: configuredFetchPageRequest,
146 success: configuredFetchPageSuccess,
147 failure: configuredFetchPageFailure
148 }));
149};
150
151exports.fetchPageThunk = fetchPageThunk;
\No newline at end of file