UNPKG

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