UNPKG

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