service-creator 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +69 -0
- package/dist/combinePathWithBase.d.ts +1 -0
- package/dist/combinePathWithBase.js +15 -0
- package/dist/create-service.d.ts +25 -0
- package/dist/create-service.js +235 -0
- package/dist/fetch-types.d.ts +11 -0
- package/dist/fetch-types.js +6 -0
- package/dist/fetchJSON.d.ts +10 -0
- package/dist/fetchJSON.js +134 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +110 -0
- package/dist/ls.d.ts +3 -0
- package/dist/ls.js +31 -0
- package/dist/try-parse.d.ts +1 -0
- package/dist/try-parse.js +17 -0
- package/dist/url-helpers.d.ts +3 -0
- package/dist/url-helpers.js +68 -0
- package/dist/withRetries.d.ts +6 -0
- package/dist/withRetries.js +115 -0
- package/package.json +74 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Roy Riojas
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# create-service
|
|
2
|
+
|
|
3
|
+
A simple abstraction to create "services", plain objects that can be used to perform fetch calls in a convention over configuration fashion.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install create-service
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```js
|
|
14
|
+
import { createService } from 'create-service';
|
|
15
|
+
import { v4 as uuid } from 'uuid';
|
|
16
|
+
|
|
17
|
+
const fetcher = {
|
|
18
|
+
fetch: async (url, opts) => {
|
|
19
|
+
const resp = await fetch(url, opts);
|
|
20
|
+
return resp.json();
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// defining the interface of the service is helpful to have good typings
|
|
25
|
+
// service methods are async functions that return a promise that resolves to the response
|
|
26
|
+
// expected to be received from the fetch/xhr calls
|
|
27
|
+
export interface PPService {
|
|
28
|
+
getSomeData: (prompt: string) => Promise<SomeData[]>;
|
|
29
|
+
getDataById: (id: string) => Promise<SomeData>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const commonHeadersFn = () => {
|
|
33
|
+
const appCtx = getCtx();
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
'x-req-id': uuid(),
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const service = createService({
|
|
41
|
+
endpoints: {
|
|
42
|
+
getSomeData: {
|
|
43
|
+
method: 'GET',
|
|
44
|
+
url: '/v1/get-some-data',
|
|
45
|
+
body: ({ prompt }) => ({ prompt }),
|
|
46
|
+
headers: commonHeadersFn,
|
|
47
|
+
},
|
|
48
|
+
getDataById: {
|
|
49
|
+
method: 'GET',
|
|
50
|
+
headers: commonHeadersFn,
|
|
51
|
+
url: ({ id }) => `/v1/get-some-data-by-id/${id}`,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
basePath: api,
|
|
55
|
+
fetcher,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
const data = await service.getSomeData({ prompt: 'hello world' });
|
|
59
|
+
|
|
60
|
+
console.log(data); // expected an array of SomeData
|
|
61
|
+
|
|
62
|
+
const dataById = await service.getDataById({ id: '1' });
|
|
63
|
+
|
|
64
|
+
console.log(dataById); // expected a single SomeData
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## License
|
|
68
|
+
|
|
69
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const combinePathWithBase: (host: string, path: string) => string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.combinePathWithBase = void 0;
|
|
7
|
+
|
|
8
|
+
var combinePathWithBase = function combinePathWithBase(host, path) {
|
|
9
|
+
host = host.replace(/\/$/, '');
|
|
10
|
+
path = path.replace(/^\//, '');
|
|
11
|
+
return "".concat(host, "/").concat(path);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.combinePathWithBase = combinePathWithBase;
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5lUGF0aFdpdGhCYXNlLnRzIl0sIm5hbWVzIjpbImNvbWJpbmVQYXRoV2l0aEJhc2UiLCJob3N0IiwicGF0aCIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBTyxJQUFNQSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQXNCLENBQUNDLElBQUQsRUFBZUMsSUFBZixFQUFnQztBQUNqRUQsRUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUNFLE9BQUwsQ0FBYSxLQUFiLEVBQW9CLEVBQXBCLENBQVA7QUFDQUQsRUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUNDLE9BQUwsQ0FBYSxLQUFiLEVBQW9CLEVBQXBCLENBQVA7QUFDQSxtQkFBVUYsSUFBVixjQUFrQkMsSUFBbEI7QUFDRCxDQUpNIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGNvbWJpbmVQYXRoV2l0aEJhc2UgPSAoaG9zdDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpID0+IHtcbiAgaG9zdCA9IGhvc3QucmVwbGFjZSgvXFwvJC8sICcnKTtcbiAgcGF0aCA9IHBhdGgucmVwbGFjZSgvXlxcLy8sICcnKTtcbiAgcmV0dXJuIGAke2hvc3R9LyR7cGF0aH1gO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Fetcher, FetchOptions } from './fetch-types';
|
|
2
|
+
export declare const combine: (host: string, path: string) => string;
|
|
3
|
+
export interface Fn<T extends Array<any>> {
|
|
4
|
+
(...args: T): string;
|
|
5
|
+
}
|
|
6
|
+
export type ServiceFn = (...args: any[]) => Promise<any>;
|
|
7
|
+
export type StringOrFn<T extends ServiceFn> = string | Fn<Parameters<T>>;
|
|
8
|
+
export type ObjectOrFn<T extends ServiceFn> = object | Fn<Parameters<T>>;
|
|
9
|
+
export interface Descriptor<K extends ServiceFn> {
|
|
10
|
+
url: StringOrFn<K>;
|
|
11
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT';
|
|
12
|
+
body?: ObjectOrFn<K>;
|
|
13
|
+
headers?: ObjectOrFn<K>;
|
|
14
|
+
params?: ObjectOrFn<K>;
|
|
15
|
+
fetchOpts?: FetchOptions;
|
|
16
|
+
}
|
|
17
|
+
export type ServiceDescriptor<T> = {
|
|
18
|
+
[K in keyof T]: Descriptor<T[K] extends ServiceFn ? T[K] : never>;
|
|
19
|
+
};
|
|
20
|
+
export interface CreateServiceArgs<T> {
|
|
21
|
+
endpoints: ServiceDescriptor<T>;
|
|
22
|
+
basePath: string | undefined;
|
|
23
|
+
fetcher: Fetcher;
|
|
24
|
+
}
|
|
25
|
+
export declare const createService: <T>({ endpoints, basePath, fetcher }: CreateServiceArgs<T>) => T;
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createService = exports.combine = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
|
|
16
|
+
var _combinePathWithBase = require("./combinePathWithBase");
|
|
17
|
+
|
|
18
|
+
var _urlHelpers = require("./url-helpers");
|
|
19
|
+
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
|
+
|
|
24
|
+
var combine = function combine(host, path) {
|
|
25
|
+
host = host.replace(/\/$/, '');
|
|
26
|
+
path = path.replace(/^\//, '');
|
|
27
|
+
return "".concat(host, "/").concat(path);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
exports.combine = combine;
|
|
31
|
+
|
|
32
|
+
var getDefaultData = function getDefaultData() {
|
|
33
|
+
var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
34
|
+
return args.length > 0 ? args[0] : undefined;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var tryCall = /*#__PURE__*/function () {
|
|
38
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(fn) {
|
|
39
|
+
var _len,
|
|
40
|
+
args,
|
|
41
|
+
_key,
|
|
42
|
+
fnName,
|
|
43
|
+
_args = arguments;
|
|
44
|
+
|
|
45
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
46
|
+
while (1) {
|
|
47
|
+
switch (_context.prev = _context.next) {
|
|
48
|
+
case 0:
|
|
49
|
+
for (_len = _args.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
50
|
+
args[_key - 1] = _args[_key];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
_context.prev = 1;
|
|
54
|
+
_context.next = 4;
|
|
55
|
+
return fn.apply(void 0, args);
|
|
56
|
+
|
|
57
|
+
case 4:
|
|
58
|
+
return _context.abrupt("return", _context.sent);
|
|
59
|
+
|
|
60
|
+
case 7:
|
|
61
|
+
_context.prev = 7;
|
|
62
|
+
_context.t0 = _context["catch"](1);
|
|
63
|
+
fnName = fn ? fn.name : 'anonymous';
|
|
64
|
+
console.warn("[CreateService Error] ".concat(fnName, " failed with args:"), args);
|
|
65
|
+
return _context.abrupt("return", undefined);
|
|
66
|
+
|
|
67
|
+
case 12:
|
|
68
|
+
case "end":
|
|
69
|
+
return _context.stop();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}, _callee, null, [[1, 7]]);
|
|
73
|
+
}));
|
|
74
|
+
|
|
75
|
+
return function tryCall(_x) {
|
|
76
|
+
return _ref.apply(this, arguments);
|
|
77
|
+
};
|
|
78
|
+
}();
|
|
79
|
+
|
|
80
|
+
var createService = function createService(_ref2) {
|
|
81
|
+
var endpoints = _ref2.endpoints,
|
|
82
|
+
basePath = _ref2.basePath,
|
|
83
|
+
fetcher = _ref2.fetcher;
|
|
84
|
+
return Object.keys(endpoints).reduce(function (service, serviceName) {
|
|
85
|
+
service[serviceName] = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
86
|
+
var _len2,
|
|
87
|
+
args,
|
|
88
|
+
_key2,
|
|
89
|
+
_endpoints,
|
|
90
|
+
url,
|
|
91
|
+
body,
|
|
92
|
+
headers,
|
|
93
|
+
method,
|
|
94
|
+
params,
|
|
95
|
+
fetchOpts,
|
|
96
|
+
urlToUse,
|
|
97
|
+
getDefault,
|
|
98
|
+
bodyToUse,
|
|
99
|
+
headersToUse,
|
|
100
|
+
paramsToUse,
|
|
101
|
+
opts,
|
|
102
|
+
_args2 = arguments;
|
|
103
|
+
|
|
104
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
105
|
+
while (1) {
|
|
106
|
+
switch (_context2.prev = _context2.next) {
|
|
107
|
+
case 0:
|
|
108
|
+
for (_len2 = _args2.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
109
|
+
args[_key2] = _args2[_key2];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
_endpoints = endpoints[serviceName], url = _endpoints.url, body = _endpoints.body, headers = _endpoints.headers, method = _endpoints.method, params = _endpoints.params, fetchOpts = _endpoints.fetchOpts;
|
|
113
|
+
|
|
114
|
+
if (!(typeof url === 'function')) {
|
|
115
|
+
_context2.next = 8;
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
_context2.next = 5;
|
|
120
|
+
return tryCall.apply(void 0, [url].concat(args));
|
|
121
|
+
|
|
122
|
+
case 5:
|
|
123
|
+
_context2.t0 = _context2.sent;
|
|
124
|
+
_context2.next = 9;
|
|
125
|
+
break;
|
|
126
|
+
|
|
127
|
+
case 8:
|
|
128
|
+
_context2.t0 = url;
|
|
129
|
+
|
|
130
|
+
case 9:
|
|
131
|
+
urlToUse = _context2.t0;
|
|
132
|
+
|
|
133
|
+
if (!(typeof urlToUse !== 'string')) {
|
|
134
|
+
_context2.next = 13;
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
console.error('[Create Service Error]: URL must be a string or a function returning a string', urlToUse);
|
|
139
|
+
throw new Error("URL must be a string or a function returning a string for method ".concat(serviceName, "."));
|
|
140
|
+
|
|
141
|
+
case 13:
|
|
142
|
+
// TODO: detect absolute urlToUse and prevent adding the base path
|
|
143
|
+
if (basePath) {
|
|
144
|
+
urlToUse = (0, _combinePathWithBase.combinePathWithBase)(basePath, urlToUse);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
getDefault = function getDefault() {
|
|
148
|
+
return method !== 'GET' ? getDefaultData(args) : undefined;
|
|
149
|
+
}; // if data is a function we pass all the arguments to the function so it creates
|
|
150
|
+
// the payload with all the provided arguments, expecting it to return a single object
|
|
151
|
+
// if the data is not a function then we get the first argument passed to the function as the
|
|
152
|
+
// data payload. If this is an object it will be serialized using json stringify before sending it
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
if (!(typeof body === 'function')) {
|
|
156
|
+
_context2.next = 21;
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
_context2.next = 18;
|
|
161
|
+
return tryCall.apply(void 0, [body].concat(args));
|
|
162
|
+
|
|
163
|
+
case 18:
|
|
164
|
+
_context2.t1 = _context2.sent;
|
|
165
|
+
_context2.next = 22;
|
|
166
|
+
break;
|
|
167
|
+
|
|
168
|
+
case 21:
|
|
169
|
+
_context2.t1 = getDefault();
|
|
170
|
+
|
|
171
|
+
case 22:
|
|
172
|
+
bodyToUse = _context2.t1;
|
|
173
|
+
|
|
174
|
+
if (!(typeof headers === 'function')) {
|
|
175
|
+
_context2.next = 29;
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
_context2.next = 26;
|
|
180
|
+
return tryCall.apply(void 0, [headers].concat(args));
|
|
181
|
+
|
|
182
|
+
case 26:
|
|
183
|
+
_context2.t2 = _context2.sent;
|
|
184
|
+
_context2.next = 30;
|
|
185
|
+
break;
|
|
186
|
+
|
|
187
|
+
case 29:
|
|
188
|
+
_context2.t2 = headers;
|
|
189
|
+
|
|
190
|
+
case 30:
|
|
191
|
+
headersToUse = _context2.t2;
|
|
192
|
+
|
|
193
|
+
if (!(typeof params === 'function')) {
|
|
194
|
+
_context2.next = 37;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
_context2.next = 34;
|
|
199
|
+
return tryCall.apply(void 0, [params].concat(args));
|
|
200
|
+
|
|
201
|
+
case 34:
|
|
202
|
+
_context2.t3 = _context2.sent;
|
|
203
|
+
_context2.next = 38;
|
|
204
|
+
break;
|
|
205
|
+
|
|
206
|
+
case 37:
|
|
207
|
+
_context2.t3 = params;
|
|
208
|
+
|
|
209
|
+
case 38:
|
|
210
|
+
paramsToUse = _context2.t3;
|
|
211
|
+
opts = _objectSpread(_objectSpread({}, fetchOpts || {}), {}, {
|
|
212
|
+
body: bodyToUse,
|
|
213
|
+
headers: headersToUse,
|
|
214
|
+
method: method
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
if (paramsToUse) {
|
|
218
|
+
urlToUse = (0, _urlHelpers.setQueryParams)(urlToUse, paramsToUse);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return _context2.abrupt("return", fetcher.fetch(urlToUse, opts));
|
|
222
|
+
|
|
223
|
+
case 42:
|
|
224
|
+
case "end":
|
|
225
|
+
return _context2.stop();
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}, _callee2);
|
|
229
|
+
}));
|
|
230
|
+
return service;
|
|
231
|
+
}, {});
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
exports.createService = createService;
|
|
235
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGUtc2VydmljZS50cyJdLCJuYW1lcyI6WyJjb21iaW5lIiwiaG9zdCIsInBhdGgiLCJyZXBsYWNlIiwiZ2V0RGVmYXVsdERhdGEiLCJhcmdzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwidHJ5Q2FsbCIsImZuIiwiZm5OYW1lIiwibmFtZSIsImNvbnNvbGUiLCJ3YXJuIiwiY3JlYXRlU2VydmljZSIsImVuZHBvaW50cyIsImJhc2VQYXRoIiwiZmV0Y2hlciIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJzZXJ2aWNlIiwic2VydmljZU5hbWUiLCJ1cmwiLCJib2R5IiwiaGVhZGVycyIsIm1ldGhvZCIsInBhcmFtcyIsImZldGNoT3B0cyIsInVybFRvVXNlIiwiZXJyb3IiLCJFcnJvciIsImdldERlZmF1bHQiLCJib2R5VG9Vc2UiLCJoZWFkZXJzVG9Vc2UiLCJwYXJhbXNUb1VzZSIsIm9wdHMiLCJmZXRjaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7Ozs7OztBQUVPLElBQU1BLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLElBQUQsRUFBZUMsSUFBZixFQUFnQztBQUNyREQsRUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUNFLE9BQUwsQ0FBYSxLQUFiLEVBQW9CLEVBQXBCLENBQVA7QUFDQUQsRUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUNDLE9BQUwsQ0FBYSxLQUFiLEVBQW9CLEVBQXBCLENBQVA7QUFDQSxtQkFBVUYsSUFBVixjQUFrQkMsSUFBbEI7QUFDRCxDQUpNOzs7O0FBTVAsSUFBTUUsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQjtBQUFBLE1BQUNDLElBQUQsdUVBQWUsRUFBZjtBQUFBLFNBQXVCQSxJQUFJLENBQUNDLE1BQUwsR0FBYyxDQUFkLEdBQWtCRCxJQUFJLENBQUMsQ0FBRCxDQUF0QixHQUE0QkUsU0FBbkQ7QUFBQSxDQUF2Qjs7QUFFQSxJQUFNQyxPQUFPO0FBQUEscUZBQUcsaUJBQU9DLEVBQVA7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsc0NBQXdCSixJQUF4QjtBQUF3QkEsY0FBQUEsSUFBeEI7QUFBQTs7QUFBQTtBQUFBO0FBQUEsbUJBRUNJLEVBQUUsTUFBRixTQUFNSixJQUFOLENBRkQ7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFJTkssWUFBQUEsTUFKTSxHQUlHRCxFQUFFLEdBQUdBLEVBQUUsQ0FBQ0UsSUFBTixHQUFhLFdBSmxCO0FBS1pDLFlBQUFBLE9BQU8sQ0FBQ0MsSUFBUixpQ0FBc0NILE1BQXRDLHlCQUFrRUwsSUFBbEU7QUFMWSw2Q0FNTEUsU0FOSzs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHQUFIOztBQUFBLGtCQUFQQyxPQUFPO0FBQUE7QUFBQTtBQUFBLEdBQWI7O0FBc0NPLElBQU1NLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0I7QUFBQSxNQUFNQyxTQUFOLFNBQU1BLFNBQU47QUFBQSxNQUFpQkMsUUFBakIsU0FBaUJBLFFBQWpCO0FBQUEsTUFBMkJDLE9BQTNCLFNBQTJCQSxPQUEzQjtBQUFBLFNBQzNCQyxNQUFNLENBQUNDLElBQVAsQ0FBWUosU0FBWixFQUF1QkssTUFBdkIsQ0FBOEIsVUFBQ0MsT0FBRCxFQUFVQyxXQUFWLEVBQTBCO0FBQ3RERCxJQUFBQSxPQUFPLENBQUNDLFdBQUQsQ0FBUCx3RkFBdUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMENBQVVqQixJQUFWO0FBQVVBLGdCQUFBQSxJQUFWO0FBQUE7O0FBQUEsMkJBRW5CVSxTQUFTLENBQUNPLFdBQUQsQ0FGVSxFQUNiQyxHQURhLGNBQ2JBLEdBRGEsRUFDUkMsSUFEUSxjQUNSQSxJQURRLEVBQ0ZDLE9BREUsY0FDRkEsT0FERSxFQUNPQyxNQURQLGNBQ09BLE1BRFAsRUFDZUMsTUFEZixjQUNlQSxNQURmLEVBQ3VCQyxTQUR2QixjQUN1QkEsU0FEdkI7O0FBQUEsb0JBSUUsT0FBT0wsR0FBUCxLQUFlLFVBSmpCO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEscUJBSW9DZixPQUFPLE1BQVAsVUFBUWUsR0FBUixTQUFnQmxCLElBQWhCLEVBSnBDOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsNkJBSTREa0IsR0FKNUQ7O0FBQUE7QUFJakJNLGNBQUFBLFFBSmlCOztBQUFBLG9CQUtqQixPQUFPQSxRQUFQLEtBQW9CLFFBTEg7QUFBQTtBQUFBO0FBQUE7O0FBTW5CakIsY0FBQUEsT0FBTyxDQUFDa0IsS0FBUixDQUNFLCtFQURGLEVBRUVELFFBRkY7QUFObUIsb0JBVWIsSUFBSUUsS0FBSiw0RUFDZ0VULFdBRGhFLE9BVmE7O0FBQUE7QUFlckI7QUFDQSxrQkFBSU4sUUFBSixFQUFjO0FBQ1phLGdCQUFBQSxRQUFRLEdBQUcsOENBQW9CYixRQUFwQixFQUE4QmEsUUFBOUIsQ0FBWDtBQUNEOztBQUVLRyxjQUFBQSxVQXBCZSxHQW9CRixTQUFiQSxVQUFhO0FBQUEsdUJBQU9OLE1BQU0sS0FBSyxLQUFYLEdBQW1CdEIsY0FBYyxDQUFDQyxJQUFELENBQWpDLEdBQTBDRSxTQUFqRDtBQUFBLGVBcEJFLEVBc0JyQjtBQUNBO0FBQ0E7QUFDQTs7O0FBekJxQixvQkEwQkgsT0FBT2lCLElBQVAsS0FBZ0IsVUExQmI7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxxQkEwQmdDaEIsT0FBTyxNQUFQLFVBQVFnQixJQUFSLFNBQWlCbkIsSUFBakIsRUExQmhDOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsNkJBMEJ5RDJCLFVBQVUsRUExQm5FOztBQUFBO0FBMEJmQyxjQUFBQSxTQTFCZTs7QUFBQSxvQkE0Qm5CLE9BQU9SLE9BQVAsS0FBbUIsVUE1QkE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxxQkE0Qm1CakIsT0FBTyxNQUFQLFVBQVFpQixPQUFSLFNBQW9CcEIsSUFBcEIsRUE1Qm5COztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsNkJBNEIrQ29CLE9BNUIvQzs7QUFBQTtBQTJCZlMsY0FBQUEsWUEzQmU7O0FBQUEsb0JBOEJELE9BQU9QLE1BQVAsS0FBa0IsVUE5QmpCO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEscUJBOEJvQ25CLE9BQU8sTUFBUCxVQUFRbUIsTUFBUixTQUFtQnRCLElBQW5CLEVBOUJwQzs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLDZCQThCK0RzQixNQTlCL0Q7O0FBQUE7QUE4QmZRLGNBQUFBLFdBOUJlO0FBK0JmQyxjQUFBQSxJQS9CZSxtQ0ErQkZSLFNBQVMsSUFBSSxFQS9CWDtBQStCZ0JKLGdCQUFBQSxJQUFJLEVBQUVTLFNBL0J0QjtBQStCaUNSLGdCQUFBQSxPQUFPLEVBQUVTLFlBL0IxQztBQStCd0RSLGdCQUFBQSxNQUFNLEVBQU5BO0FBL0J4RDs7QUFpQ3JCLGtCQUFJUyxXQUFKLEVBQWlCO0FBQ2ZOLGdCQUFBQSxRQUFRLEdBQUcsZ0NBQWVBLFFBQWYsRUFBeUJNLFdBQXpCLENBQVg7QUFDRDs7QUFuQ29CLGdEQXFDZGxCLE9BQU8sQ0FBQ29CLEtBQVIsQ0FBY1IsUUFBZCxFQUF3Qk8sSUFBeEIsQ0FyQ2M7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsS0FBdkI7QUF3Q0EsV0FBT2YsT0FBUDtBQUNELEdBMUNELEVBMENHLEVBMUNILENBRDJCO0FBQUEsQ0FBdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lUGF0aFdpdGhCYXNlIH0gZnJvbSAnLi9jb21iaW5lUGF0aFdpdGhCYXNlJztcbmltcG9ydCB7IEZldGNoZXIsIEZldGNoT3B0aW9ucyB9IGZyb20gJy4vZmV0Y2gtdHlwZXMnO1xuaW1wb3J0IHsgc2V0UXVlcnlQYXJhbXMgfSBmcm9tICcuL3VybC1oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmUgPSAoaG9zdDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpID0+IHtcbiAgaG9zdCA9IGhvc3QucmVwbGFjZSgvXFwvJC8sICcnKTtcbiAgcGF0aCA9IHBhdGgucmVwbGFjZSgvXlxcLy8sICcnKTtcbiAgcmV0dXJuIGAke2hvc3R9LyR7cGF0aH1gO1xufTtcblxuY29uc3QgZ2V0RGVmYXVsdERhdGEgPSAoYXJnczogYW55W10gPSBbXSkgPT4gKGFyZ3MubGVuZ3RoID4gMCA/IGFyZ3NbMF0gOiB1bmRlZmluZWQpO1xuXG5jb25zdCB0cnlDYWxsID0gYXN5bmMgKGZuOiBGdW5jdGlvbiwgLi4uYXJnczogYW55W10pID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgZm4oLi4uYXJncyk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnN0IGZuTmFtZSA9IGZuID8gZm4ubmFtZSA6ICdhbm9ueW1vdXMnO1xuICAgIGNvbnNvbGUud2FybihgW0NyZWF0ZVNlcnZpY2UgRXJyb3JdICR7Zm5OYW1lfSBmYWlsZWQgd2l0aCBhcmdzOmAsIGFyZ3MpO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm48VCBleHRlbmRzIEFycmF5PGFueT4+IHtcbiAgKC4uLmFyZ3M6IFQpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNlcnZpY2VGbiA9ICguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxhbnk+O1xuXG5leHBvcnQgdHlwZSBTdHJpbmdPckZuPFQgZXh0ZW5kcyBTZXJ2aWNlRm4+ID0gc3RyaW5nIHwgRm48UGFyYW1ldGVyczxUPj47XG5leHBvcnQgdHlwZSBPYmplY3RPckZuPFQgZXh0ZW5kcyBTZXJ2aWNlRm4+ID0gb2JqZWN0IHwgRm48UGFyYW1ldGVyczxUPj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzY3JpcHRvcjxLIGV4dGVuZHMgU2VydmljZUZuPiB7XG4gIHVybDogU3RyaW5nT3JGbjxLPjtcbiAgbWV0aG9kPzogJ0dFVCcgfCAnUE9TVCcgfCAnUFVUJyB8ICdERUxFVEUnIHwgJ1BBVENIJyB8ICdIRUFEJyB8ICdPUFRJT05TJyB8ICdUUkFDRScgfCAnQ09OTkVDVCc7XG4gIGJvZHk/OiBPYmplY3RPckZuPEs+O1xuICBoZWFkZXJzPzogT2JqZWN0T3JGbjxLPjtcbiAgcGFyYW1zPzogT2JqZWN0T3JGbjxLPjtcbiAgZmV0Y2hPcHRzPzogRmV0Y2hPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBTZXJ2aWNlRGVzY3JpcHRvcjxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF06IERlc2NyaXB0b3I8VFtLXSBleHRlbmRzIFNlcnZpY2VGbiA/IFRbS10gOiBuZXZlcj47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVNlcnZpY2VBcmdzPFQ+IHtcbiAgZW5kcG9pbnRzOiBTZXJ2aWNlRGVzY3JpcHRvcjxUPjtcbiAgYmFzZVBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZmV0Y2hlcjogRmV0Y2hlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVNlcnZpY2UgPSA8VD4oeyBlbmRwb2ludHMsIGJhc2VQYXRoLCBmZXRjaGVyIH06IENyZWF0ZVNlcnZpY2VBcmdzPFQ+KTogVCA9PlxuICBPYmplY3Qua2V5cyhlbmRwb2ludHMpLnJlZHVjZSgoc2VydmljZSwgc2VydmljZU5hbWUpID0+IHtcbiAgICBzZXJ2aWNlW3NlcnZpY2VOYW1lXSA9IGFzeW5jICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgY29uc3QgeyB1cmwsIGJvZHksIGhlYWRlcnMsIG1ldGhvZCwgcGFyYW1zLCBmZXRjaE9wdHMgfSA9XG4gICAgICAgIGVuZHBvaW50c1tzZXJ2aWNlTmFtZSBhcyBrZXlvZiBTZXJ2aWNlRGVzY3JpcHRvcjxUPl07XG5cbiAgICAgIGxldCB1cmxUb1VzZTogc3RyaW5nID0gdHlwZW9mIHVybCA9PT0gJ2Z1bmN0aW9uJyA/IGF3YWl0IHRyeUNhbGwodXJsLCAuLi5hcmdzKSA6IHVybDtcbiAgICAgIGlmICh0eXBlb2YgdXJsVG9Vc2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ1tDcmVhdGUgU2VydmljZSBFcnJvcl06IFVSTCBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGEgc3RyaW5nJyxcbiAgICAgICAgICB1cmxUb1VzZSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBVUkwgbXVzdCBiZSBhIHN0cmluZyBvciBhIGZ1bmN0aW9uIHJldHVybmluZyBhIHN0cmluZyBmb3IgbWV0aG9kICR7c2VydmljZU5hbWV9LmAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIFRPRE86IGRldGVjdCBhYnNvbHV0ZSB1cmxUb1VzZSBhbmQgcHJldmVudCBhZGRpbmcgdGhlIGJhc2UgcGF0aFxuICAgICAgaWYgKGJhc2VQYXRoKSB7XG4gICAgICAgIHVybFRvVXNlID0gY29tYmluZVBhdGhXaXRoQmFzZShiYXNlUGF0aCwgdXJsVG9Vc2UpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBnZXREZWZhdWx0ID0gKCkgPT4gKG1ldGhvZCAhPT0gJ0dFVCcgPyBnZXREZWZhdWx0RGF0YShhcmdzKSA6IHVuZGVmaW5lZCk7XG5cbiAgICAgIC8vIGlmIGRhdGEgaXMgYSBmdW5jdGlvbiB3ZSBwYXNzIGFsbCB0aGUgYXJndW1lbnRzIHRvIHRoZSBmdW5jdGlvbiBzbyBpdCBjcmVhdGVzXG4gICAgICAvLyB0aGUgcGF5bG9hZCB3aXRoIGFsbCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzLCBleHBlY3RpbmcgaXQgdG8gcmV0dXJuIGEgc2luZ2xlIG9iamVjdFxuICAgICAgLy8gaWYgdGhlIGRhdGEgaXMgbm90IGEgZnVuY3Rpb24gdGhlbiB3ZSBnZXQgdGhlIGZpcnN0IGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gYXMgdGhlXG4gICAgICAvLyBkYXRhIHBheWxvYWQuIElmIHRoaXMgaXMgYW4gb2JqZWN0IGl0IHdpbGwgYmUgc2VyaWFsaXplZCB1c2luZyBqc29uIHN0cmluZ2lmeSBiZWZvcmUgc2VuZGluZyBpdFxuICAgICAgY29uc3QgYm9keVRvVXNlID0gdHlwZW9mIGJvZHkgPT09ICdmdW5jdGlvbicgPyBhd2FpdCB0cnlDYWxsKGJvZHksIC4uLmFyZ3MpIDogZ2V0RGVmYXVsdCgpO1xuICAgICAgY29uc3QgaGVhZGVyc1RvVXNlID1cbiAgICAgICAgdHlwZW9mIGhlYWRlcnMgPT09ICdmdW5jdGlvbicgPyBhd2FpdCB0cnlDYWxsKGhlYWRlcnMsIC4uLmFyZ3MpIDogaGVhZGVycztcblxuICAgICAgY29uc3QgcGFyYW1zVG9Vc2UgPSB0eXBlb2YgcGFyYW1zID09PSAnZnVuY3Rpb24nID8gYXdhaXQgdHJ5Q2FsbChwYXJhbXMsIC4uLmFyZ3MpIDogcGFyYW1zO1xuICAgICAgY29uc3Qgb3B0cyA9IHsgLi4uKGZldGNoT3B0cyB8fCB7fSksIGJvZHk6IGJvZHlUb1VzZSwgaGVhZGVyczogaGVhZGVyc1RvVXNlLCBtZXRob2QgfTtcblxuICAgICAgaWYgKHBhcmFtc1RvVXNlKSB7XG4gICAgICAgIHVybFRvVXNlID0gc2V0UXVlcnlQYXJhbXModXJsVG9Vc2UsIHBhcmFtc1RvVXNlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZldGNoZXIuZmV0Y2godXJsVG9Vc2UsIG9wdHMpO1xuICAgIH07XG5cbiAgICByZXR1cm4gc2VydmljZTtcbiAgfSwge30gYXMgYW55KTtcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FetchFn } from './fetchJSON';
|
|
2
|
+
export type FetchJSONArgs = Parameters<typeof fetch>;
|
|
3
|
+
export type FetchURL = FetchJSONArgs[0];
|
|
4
|
+
export type FetchOptions = Exclude<FetchJSONArgs[1], null | undefined>;
|
|
5
|
+
export interface SerializeBodyProps<T> extends Omit<FetchOptions, 'body'> {
|
|
6
|
+
body?: FetchOptions['body'] | T;
|
|
7
|
+
serializeBody?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface Fetcher {
|
|
10
|
+
fetch: FetchFn;
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FetchURL, SerializeBodyProps } from './fetch-types';
|
|
2
|
+
export interface ErrorData {
|
|
3
|
+
error: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class ResponseError extends Error {
|
|
6
|
+
response?: Response;
|
|
7
|
+
data?: ErrorData;
|
|
8
|
+
}
|
|
9
|
+
export declare function fetchJSON<T, K>(url: FetchURL, params: SerializeBodyProps<K>): Promise<T>;
|
|
10
|
+
export type FetchFn = typeof fetchJSON;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ResponseError = void 0;
|
|
9
|
+
exports.fetchJSON = fetchJSON;
|
|
10
|
+
|
|
11
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
|
+
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
+
|
|
15
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
16
|
+
|
|
17
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
18
|
+
|
|
19
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
20
|
+
|
|
21
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
22
|
+
|
|
23
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
24
|
+
|
|
25
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
26
|
+
|
|
27
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
28
|
+
|
|
29
|
+
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
30
|
+
|
|
31
|
+
var _excluded = ["serializeBody", "method"];
|
|
32
|
+
|
|
33
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
34
|
+
|
|
35
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
36
|
+
|
|
37
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
38
|
+
|
|
39
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
40
|
+
|
|
41
|
+
var ResponseError = /*#__PURE__*/function (_Error) {
|
|
42
|
+
(0, _inherits2.default)(ResponseError, _Error);
|
|
43
|
+
|
|
44
|
+
var _super = _createSuper(ResponseError);
|
|
45
|
+
|
|
46
|
+
function ResponseError() {
|
|
47
|
+
(0, _classCallCheck2.default)(this, ResponseError);
|
|
48
|
+
return _super.apply(this, arguments);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return (0, _createClass2.default)(ResponseError);
|
|
52
|
+
}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
|
|
53
|
+
|
|
54
|
+
exports.ResponseError = ResponseError;
|
|
55
|
+
|
|
56
|
+
function fetchJSON(_x, _x2) {
|
|
57
|
+
return _fetchJSON.apply(this, arguments);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function _fetchJSON() {
|
|
61
|
+
_fetchJSON = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url, params) {
|
|
62
|
+
var _params$serializeBody, serializeBody, method, rest, fetchMethod, props, resp, _data, error, data;
|
|
63
|
+
|
|
64
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
65
|
+
while (1) {
|
|
66
|
+
switch (_context.prev = _context.next) {
|
|
67
|
+
case 0:
|
|
68
|
+
_params$serializeBody = params.serializeBody, serializeBody = _params$serializeBody === void 0 ? true : _params$serializeBody, method = params.method, rest = (0, _objectWithoutProperties2.default)(params, _excluded);
|
|
69
|
+
fetchMethod = method !== null && method !== void 0 ? method : 'GET';
|
|
70
|
+
props = _objectSpread(_objectSpread({}, rest), {}, {
|
|
71
|
+
method: fetchMethod,
|
|
72
|
+
headers: _objectSpread({
|
|
73
|
+
'Content-type': 'application/json'
|
|
74
|
+
}, rest.headers),
|
|
75
|
+
body: fetchMethod === 'GET' ? undefined : serializeBody ? JSON.stringify(params === null || params === void 0 ? void 0 : params.body) : params === null || params === void 0 ? void 0 : params.body
|
|
76
|
+
});
|
|
77
|
+
_context.prev = 3;
|
|
78
|
+
_context.next = 6;
|
|
79
|
+
return fetch(url, props);
|
|
80
|
+
|
|
81
|
+
case 6:
|
|
82
|
+
resp = _context.sent;
|
|
83
|
+
|
|
84
|
+
if (!(resp.status < 200 || resp.status > 300)) {
|
|
85
|
+
_context.next = 21;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
_context.prev = 8;
|
|
90
|
+
_context.next = 11;
|
|
91
|
+
return resp.json();
|
|
92
|
+
|
|
93
|
+
case 11:
|
|
94
|
+
_data = _context.sent;
|
|
95
|
+
_context.next = 17;
|
|
96
|
+
break;
|
|
97
|
+
|
|
98
|
+
case 14:
|
|
99
|
+
_context.prev = 14;
|
|
100
|
+
_context.t0 = _context["catch"](8);
|
|
101
|
+
_data = {
|
|
102
|
+
error: 'JSON_ERROR_NOT_RECEIVED'
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
case 17:
|
|
106
|
+
error = new ResponseError(_data.error);
|
|
107
|
+
error.response = resp;
|
|
108
|
+
error.data = _data;
|
|
109
|
+
throw error;
|
|
110
|
+
|
|
111
|
+
case 21:
|
|
112
|
+
_context.next = 23;
|
|
113
|
+
return resp.json();
|
|
114
|
+
|
|
115
|
+
case 23:
|
|
116
|
+
data = _context.sent;
|
|
117
|
+
return _context.abrupt("return", data);
|
|
118
|
+
|
|
119
|
+
case 27:
|
|
120
|
+
_context.prev = 27;
|
|
121
|
+
_context.t1 = _context["catch"](3);
|
|
122
|
+
console.error('>>> err', _context.t1);
|
|
123
|
+
throw _context.t1;
|
|
124
|
+
|
|
125
|
+
case 31:
|
|
126
|
+
case "end":
|
|
127
|
+
return _context.stop();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}, _callee, null, [[3, 27], [8, 14]]);
|
|
131
|
+
}));
|
|
132
|
+
return _fetchJSON.apply(this, arguments);
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mZXRjaEpTT04udHMiXSwibmFtZXMiOlsiUmVzcG9uc2VFcnJvciIsIkVycm9yIiwiZmV0Y2hKU09OIiwidXJsIiwicGFyYW1zIiwic2VyaWFsaXplQm9keSIsIm1ldGhvZCIsInJlc3QiLCJmZXRjaE1ldGhvZCIsInByb3BzIiwiaGVhZGVycyIsImJvZHkiLCJ1bmRlZmluZWQiLCJKU09OIiwic3RyaW5naWZ5IiwiZmV0Y2giLCJyZXNwIiwic3RhdHVzIiwianNvbiIsImRhdGEiLCJlcnJvciIsInJlc3BvbnNlIiwiY29uc29sZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUthQSxhOzs7Ozs7Ozs7OzsrQ0FBc0JDLEs7Ozs7U0FNYkMsUzs7Ozs7dUZBQWYsaUJBQStCQyxHQUEvQixFQUE4Q0MsTUFBOUM7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG9DQUM2Q0EsTUFEN0MsQ0FDR0MsYUFESCxFQUNHQSxhQURILHNDQUNtQixJQURuQiwwQkFDeUJDLE1BRHpCLEdBQzZDRixNQUQ3QyxDQUN5QkUsTUFEekIsRUFDb0NDLElBRHBDLDBDQUM2Q0gsTUFEN0M7QUFFQ0ksWUFBQUEsV0FGRCxHQUVlRixNQUZmLGFBRWVBLE1BRmYsY0FFZUEsTUFGZixHQUV5QixLQUZ6QjtBQUlDRyxZQUFBQSxLQUpELG1DQUtBRixJQUxBO0FBTUhELGNBQUFBLE1BQU0sRUFBRUUsV0FOTDtBQU9IRSxjQUFBQSxPQUFPO0FBQ0wsZ0NBQWdCO0FBRFgsaUJBRUZILElBQUksQ0FBQ0csT0FGSCxDQVBKO0FBV0hDLGNBQUFBLElBQUksRUFDRkgsV0FBVyxLQUFLLEtBQWhCLEdBQ0lJLFNBREosR0FFTVAsYUFBYSxHQUFHUSxJQUFJLENBQUNDLFNBQUwsQ0FBZVYsTUFBZixhQUFlQSxNQUFmLHVCQUFlQSxNQUFNLENBQUVPLElBQXZCLENBQUgsR0FBa0NQLE1BQWxDLGFBQWtDQSxNQUFsQyx1QkFBa0NBLE1BQU0sQ0FBRU87QUFkNUQ7QUFBQTtBQUFBO0FBQUEsbUJBa0JnQkksS0FBSyxDQUFDWixHQUFELEVBQU1NLEtBQU4sQ0FsQnJCOztBQUFBO0FBa0JHTyxZQUFBQSxJQWxCSDs7QUFBQSxrQkFtQkNBLElBQUksQ0FBQ0MsTUFBTCxHQUFjLEdBQWQsSUFBcUJELElBQUksQ0FBQ0MsTUFBTCxHQUFjLEdBbkJwQztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsbUJBc0JjRCxJQUFJLENBQUNFLElBQUwsRUF0QmQ7O0FBQUE7QUFzQkNDLFlBQUFBLEtBdEJEO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUF3QkNBLFlBQUFBLEtBQUksR0FBRztBQUFFQyxjQUFBQSxLQUFLLEVBQUU7QUFBVCxhQUFQOztBQXhCRDtBQTBCS0EsWUFBQUEsS0ExQkwsR0EwQmEsSUFBSXBCLGFBQUosQ0FBa0JtQixLQUFJLENBQUNDLEtBQXZCLENBMUJiO0FBMkJEQSxZQUFBQSxLQUFLLENBQUNDLFFBQU4sR0FBaUJMLElBQWpCO0FBQ0FJLFlBQUFBLEtBQUssQ0FBQ0QsSUFBTixHQUFhQSxLQUFiO0FBNUJDLGtCQThCS0MsS0E5Qkw7O0FBQUE7QUFBQTtBQUFBLG1CQWdDZ0JKLElBQUksQ0FBQ0UsSUFBTCxFQWhDaEI7O0FBQUE7QUFnQ0dDLFlBQUFBLElBaENIO0FBQUEsNkNBaUNJQSxJQWpDSjs7QUFBQTtBQUFBO0FBQUE7QUFtQ0hHLFlBQUFBLE9BQU8sQ0FBQ0YsS0FBUixDQUFjLFNBQWQ7QUFuQ0c7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZldGNoT3B0aW9ucywgRmV0Y2hVUkwsIFNlcmlhbGl6ZUJvZHlQcm9wcyB9IGZyb20gJy4vZmV0Y2gtdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yRGF0YSB7XG4gIGVycm9yOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgUmVzcG9uc2VFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcmVzcG9uc2U/OiBSZXNwb25zZTtcblxuICBkYXRhPzogRXJyb3JEYXRhO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hKU09OPFQsIEs+KHVybDogRmV0Y2hVUkwsIHBhcmFtczogU2VyaWFsaXplQm9keVByb3BzPEs+KTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHsgc2VyaWFsaXplQm9keSA9IHRydWUsIG1ldGhvZCwgLi4ucmVzdCB9ID0gcGFyYW1zO1xuICBjb25zdCBmZXRjaE1ldGhvZCA9IG1ldGhvZCA/PyAnR0VUJztcblxuICBjb25zdCBwcm9wczogRmV0Y2hPcHRpb25zID0ge1xuICAgIC4uLnJlc3QsXG4gICAgbWV0aG9kOiBmZXRjaE1ldGhvZCxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnQ29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgLi4ucmVzdC5oZWFkZXJzLFxuICAgIH0sXG4gICAgYm9keTpcbiAgICAgIGZldGNoTWV0aG9kID09PSAnR0VUJ1xuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6ICgoc2VyaWFsaXplQm9keSA/IEpTT04uc3RyaW5naWZ5KHBhcmFtcz8uYm9keSkgOiBwYXJhbXM/LmJvZHkpIGFzIEZldGNoT3B0aW9uc1snYm9keSddKSxcbiAgfTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBmZXRjaCh1cmwsIHByb3BzKTtcbiAgICBpZiAocmVzcC5zdGF0dXMgPCAyMDAgfHwgcmVzcC5zdGF0dXMgPiAzMDApIHtcbiAgICAgIGxldCBkYXRhOiBFcnJvckRhdGE7XG4gICAgICB0cnkge1xuICAgICAgICBkYXRhID0gYXdhaXQgcmVzcC5qc29uKCk7XG4gICAgICB9IGNhdGNoIChwYXJzZUVycm9yKSB7XG4gICAgICAgIGRhdGEgPSB7IGVycm9yOiAnSlNPTl9FUlJPUl9OT1RfUkVDRUlWRUQnIH07XG4gICAgICB9XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBSZXNwb25zZUVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgZXJyb3IucmVzcG9uc2UgPSByZXNwO1xuICAgICAgZXJyb3IuZGF0YSA9IGRhdGE7XG5cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcC5qc29uKCk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoJz4+PiBlcnInLCBlcnIpO1xuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBGZXRjaEZuID0gdHlwZW9mIGZldGNoSlNPTjtcbiJdfQ==
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _createService = require("./create-service");
|
|
8
|
+
|
|
9
|
+
Object.keys(_createService).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _createService[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _createService[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
var _fetchTypes = require("./fetch-types");
|
|
21
|
+
|
|
22
|
+
Object.keys(_fetchTypes).forEach(function (key) {
|
|
23
|
+
if (key === "default" || key === "__esModule") return;
|
|
24
|
+
if (key in exports && exports[key] === _fetchTypes[key]) return;
|
|
25
|
+
Object.defineProperty(exports, key, {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function get() {
|
|
28
|
+
return _fetchTypes[key];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
var _fetchJSON = require("./fetchJSON");
|
|
34
|
+
|
|
35
|
+
Object.keys(_fetchJSON).forEach(function (key) {
|
|
36
|
+
if (key === "default" || key === "__esModule") return;
|
|
37
|
+
if (key in exports && exports[key] === _fetchJSON[key]) return;
|
|
38
|
+
Object.defineProperty(exports, key, {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
get: function get() {
|
|
41
|
+
return _fetchJSON[key];
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
var _withRetries = require("./withRetries");
|
|
47
|
+
|
|
48
|
+
Object.keys(_withRetries).forEach(function (key) {
|
|
49
|
+
if (key === "default" || key === "__esModule") return;
|
|
50
|
+
if (key in exports && exports[key] === _withRetries[key]) return;
|
|
51
|
+
Object.defineProperty(exports, key, {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function get() {
|
|
54
|
+
return _withRetries[key];
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
var _combinePathWithBase = require("./combinePathWithBase");
|
|
60
|
+
|
|
61
|
+
Object.keys(_combinePathWithBase).forEach(function (key) {
|
|
62
|
+
if (key === "default" || key === "__esModule") return;
|
|
63
|
+
if (key in exports && exports[key] === _combinePathWithBase[key]) return;
|
|
64
|
+
Object.defineProperty(exports, key, {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
get: function get() {
|
|
67
|
+
return _combinePathWithBase[key];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
var _urlHelpers = require("./url-helpers");
|
|
73
|
+
|
|
74
|
+
Object.keys(_urlHelpers).forEach(function (key) {
|
|
75
|
+
if (key === "default" || key === "__esModule") return;
|
|
76
|
+
if (key in exports && exports[key] === _urlHelpers[key]) return;
|
|
77
|
+
Object.defineProperty(exports, key, {
|
|
78
|
+
enumerable: true,
|
|
79
|
+
get: function get() {
|
|
80
|
+
return _urlHelpers[key];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
var _tryParse = require("./try-parse");
|
|
86
|
+
|
|
87
|
+
Object.keys(_tryParse).forEach(function (key) {
|
|
88
|
+
if (key === "default" || key === "__esModule") return;
|
|
89
|
+
if (key in exports && exports[key] === _tryParse[key]) return;
|
|
90
|
+
Object.defineProperty(exports, key, {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function get() {
|
|
93
|
+
return _tryParse[key];
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
var _ls = require("./ls");
|
|
99
|
+
|
|
100
|
+
Object.keys(_ls).forEach(function (key) {
|
|
101
|
+
if (key === "default" || key === "__esModule") return;
|
|
102
|
+
if (key in exports && exports[key] === _ls[key]) return;
|
|
103
|
+
Object.defineProperty(exports, key, {
|
|
104
|
+
enumerable: true,
|
|
105
|
+
get: function get() {
|
|
106
|
+
return _ls[key];
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mZXRjaC10eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2ZldGNoSlNPTic7XG5leHBvcnQgKiBmcm9tICcuL3dpdGhSZXRyaWVzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tYmluZVBhdGhXaXRoQmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3VybC1oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJ5LXBhcnNlJztcbmV4cG9ydCAqIGZyb20gJy4vbHMnO1xuIl19
|
package/dist/ls.d.ts
ADDED
package/dist/ls.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setItem = exports.removeItem = exports.getItem = void 0;
|
|
7
|
+
|
|
8
|
+
var _tryParse2 = require("./try-parse");
|
|
9
|
+
|
|
10
|
+
var getItem = function getItem(key, defaultValue) {
|
|
11
|
+
var _tryParse;
|
|
12
|
+
|
|
13
|
+
var entity = localStorage.getItem(key);
|
|
14
|
+
return (_tryParse = (0, _tryParse2.tryParse)(entity)) !== null && _tryParse !== void 0 ? _tryParse : defaultValue;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
exports.getItem = getItem;
|
|
18
|
+
|
|
19
|
+
var setItem = function setItem(key, entity) {
|
|
20
|
+
var str = JSON.stringify(entity);
|
|
21
|
+
localStorage.setItem(key, str);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
exports.setItem = setItem;
|
|
25
|
+
|
|
26
|
+
var removeItem = function removeItem(key) {
|
|
27
|
+
localStorage.removeItem(key);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
exports.removeItem = removeItem;
|
|
31
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9scy50cyJdLCJuYW1lcyI6WyJnZXRJdGVtIiwia2V5IiwiZGVmYXVsdFZhbHVlIiwiZW50aXR5IiwibG9jYWxTdG9yYWdlIiwic2V0SXRlbSIsInN0ciIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZW1vdmVJdGVtIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRU8sSUFBTUEsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBSUMsR0FBSixFQUFpQkMsWUFBakIsRUFBcUM7QUFBQTs7QUFDMUQsTUFBTUMsTUFBTSxHQUFHQyxZQUFZLENBQUNKLE9BQWIsQ0FBcUJDLEdBQXJCLENBQWY7QUFFQSxzQkFBTyx5QkFBU0UsTUFBVCxDQUFQLGlEQUEyQkQsWUFBM0I7QUFDRCxDQUpNOzs7O0FBTUEsSUFBTUcsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBSUosR0FBSixFQUFpQkUsTUFBakIsRUFBK0I7QUFDcEQsTUFBTUcsR0FBRyxHQUFHQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUwsTUFBZixDQUFaO0FBRUFDLEVBQUFBLFlBQVksQ0FBQ0MsT0FBYixDQUFxQkosR0FBckIsRUFBMEJLLEdBQTFCO0FBQ0QsQ0FKTTs7OztBQU1BLElBQU1HLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNSLEdBQUQsRUFBaUI7QUFDekNHLEVBQUFBLFlBQVksQ0FBQ0ssVUFBYixDQUF3QlIsR0FBeEI7QUFDRCxDQUZNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJ5UGFyc2UgfSBmcm9tICcuL3RyeS1wYXJzZSc7XG5cbmV4cG9ydCBjb25zdCBnZXRJdGVtID0gPFQ+KGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQpID0+IHtcbiAgY29uc3QgZW50aXR5ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcblxuICByZXR1cm4gdHJ5UGFyc2UoZW50aXR5KSA/PyBkZWZhdWx0VmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0SXRlbSA9IDxUPihrZXk6IHN0cmluZywgZW50aXR5OiBUKSA9PiB7XG4gIGNvbnN0IHN0ciA9IEpTT04uc3RyaW5naWZ5KGVudGl0eSk7XG5cbiAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBzdHIpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUl0ZW0gPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbn07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const tryParse: <T>(val: string | null, def?: T) => T | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.tryParse = void 0;
|
|
7
|
+
|
|
8
|
+
var tryParse = function tryParse(val, def) {
|
|
9
|
+
try {
|
|
10
|
+
return JSON.parse(val);
|
|
11
|
+
} catch (err) {
|
|
12
|
+
return def;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
exports.tryParse = tryParse;
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cnktcGFyc2UudHMiXSwibmFtZXMiOlsidHJ5UGFyc2UiLCJ2YWwiLCJkZWYiLCJKU09OIiwicGFyc2UiLCJlcnIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBTyxJQUFNQSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFJQyxHQUFKLEVBQXdCQyxHQUF4QixFQUFvQztBQUMxRCxNQUFJO0FBQ0YsV0FBT0MsSUFBSSxDQUFDQyxLQUFMLENBQVdILEdBQVgsQ0FBUDtBQUNELEdBRkQsQ0FFRSxPQUFPSSxHQUFQLEVBQVk7QUFDWixXQUFPSCxHQUFQO0FBQ0Q7QUFDRixDQU5NIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRyeVBhcnNlID0gPFQ+KHZhbDogc3RyaW5nIHwgbnVsbCwgZGVmPzogVCkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHZhbCEpIGFzIFQ7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBkZWY7XG4gIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const paramsToURLSearchParams: <T extends object>(params: T, urlParams?: URLSearchParams) => URLSearchParams;
|
|
2
|
+
export declare const setQueryParams: <T extends object>(url: string, params: T) => string;
|
|
3
|
+
export declare const removeQueryParam: (url: string, params: string[]) => string;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.setQueryParams = exports.removeQueryParam = exports.paramsToURLSearchParams = void 0;
|
|
9
|
+
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
|
|
12
|
+
var paramsToURLSearchParams = function paramsToURLSearchParams(params, urlParams) {
|
|
13
|
+
var urlSearchParams = urlParams !== null && urlParams !== void 0 ? urlParams : new URLSearchParams();
|
|
14
|
+
var keys = Object.keys(params);
|
|
15
|
+
keys.forEach(function (key) {
|
|
16
|
+
var val = params[key];
|
|
17
|
+
|
|
18
|
+
if (typeof val !== 'undefined') {
|
|
19
|
+
urlSearchParams.set(key, "".concat(val));
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
return urlSearchParams;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.paramsToURLSearchParams = paramsToURLSearchParams;
|
|
26
|
+
|
|
27
|
+
var setQueryParams = function setQueryParams(url, params) {
|
|
28
|
+
var _url$split = url.split(/\?/),
|
|
29
|
+
_url$split2 = (0, _slicedToArray2.default)(_url$split, 2),
|
|
30
|
+
baseString = _url$split2[0],
|
|
31
|
+
searchString = _url$split2[1];
|
|
32
|
+
|
|
33
|
+
var urlParams = new URLSearchParams(searchString);
|
|
34
|
+
var mergeParams = paramsToURLSearchParams(params, urlParams);
|
|
35
|
+
var parts = [baseString];
|
|
36
|
+
var paramsToAdd = mergeParams.toString();
|
|
37
|
+
|
|
38
|
+
if (paramsToAdd.length > 0) {
|
|
39
|
+
parts.push("?".concat(paramsToAdd));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return parts.join('');
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.setQueryParams = setQueryParams;
|
|
46
|
+
|
|
47
|
+
var removeQueryParam = function removeQueryParam(url, params) {
|
|
48
|
+
var _url$split3 = url.split(/\?/),
|
|
49
|
+
_url$split4 = (0, _slicedToArray2.default)(_url$split3, 2),
|
|
50
|
+
baseString = _url$split4[0],
|
|
51
|
+
searchString = _url$split4[1];
|
|
52
|
+
|
|
53
|
+
var urlParams = new URLSearchParams(searchString);
|
|
54
|
+
params.forEach(function (param) {
|
|
55
|
+
urlParams.delete(param);
|
|
56
|
+
});
|
|
57
|
+
var parts = [baseString];
|
|
58
|
+
var paramsToAdd = urlParams.toString();
|
|
59
|
+
|
|
60
|
+
if (paramsToAdd.length > 0) {
|
|
61
|
+
parts.push("?".concat(paramsToAdd));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return parts.join('');
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
exports.removeQueryParam = removeQueryParam;
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91cmwtaGVscGVycy50cyJdLCJuYW1lcyI6WyJwYXJhbXNUb1VSTFNlYXJjaFBhcmFtcyIsInBhcmFtcyIsInVybFBhcmFtcyIsInVybFNlYXJjaFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImtleXMiLCJPYmplY3QiLCJmb3JFYWNoIiwia2V5IiwidmFsIiwic2V0Iiwic2V0UXVlcnlQYXJhbXMiLCJ1cmwiLCJzcGxpdCIsImJhc2VTdHJpbmciLCJzZWFyY2hTdHJpbmciLCJtZXJnZVBhcmFtcyIsInBhcnRzIiwicGFyYW1zVG9BZGQiLCJ0b1N0cmluZyIsImxlbmd0aCIsInB1c2giLCJqb2luIiwicmVtb3ZlUXVlcnlQYXJhbSIsInBhcmFtIiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFPLElBQU1BLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBMEIsQ0FDckNDLE1BRHFDLEVBRXJDQyxTQUZxQyxFQUdsQztBQUNILE1BQU1DLGVBQWUsR0FBR0QsU0FBSCxhQUFHQSxTQUFILGNBQUdBLFNBQUgsR0FBZ0IsSUFBSUUsZUFBSixFQUFyQztBQUVBLE1BQU1DLElBQUksR0FBR0MsTUFBTSxDQUFDRCxJQUFQLENBQVlKLE1BQVosQ0FBYjtBQUNBSSxFQUFBQSxJQUFJLENBQUNFLE9BQUwsQ0FBYSxVQUFDQyxHQUFELEVBQVM7QUFDcEIsUUFBTUMsR0FBRyxHQUFHUixNQUFNLENBQUNPLEdBQUQsQ0FBbEI7O0FBQ0EsUUFBSSxPQUFPQyxHQUFQLEtBQWUsV0FBbkIsRUFBZ0M7QUFDOUJOLE1BQUFBLGVBQWUsQ0FBQ08sR0FBaEIsQ0FBb0JGLEdBQXBCLFlBQTRCQyxHQUE1QjtBQUNEO0FBQ0YsR0FMRDtBQU9BLFNBQU9OLGVBQVA7QUFDRCxDQWZNOzs7O0FBaUJBLElBQU1RLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBbUJDLEdBQW5CLEVBQWdDWCxNQUFoQyxFQUE4QztBQUMxRSxtQkFBbUNXLEdBQUcsQ0FBQ0MsS0FBSixDQUFVLElBQVYsQ0FBbkM7QUFBQTtBQUFBLE1BQU9DLFVBQVA7QUFBQSxNQUFtQkMsWUFBbkI7O0FBRUEsTUFBTWIsU0FBUyxHQUFHLElBQUlFLGVBQUosQ0FBb0JXLFlBQXBCLENBQWxCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHaEIsdUJBQXVCLENBQUNDLE1BQUQsRUFBU0MsU0FBVCxDQUEzQztBQUVBLE1BQU1lLEtBQUssR0FBRyxDQUFDSCxVQUFELENBQWQ7QUFFQSxNQUFNSSxXQUFXLEdBQUdGLFdBQVcsQ0FBQ0csUUFBWixFQUFwQjs7QUFFQSxNQUFJRCxXQUFXLENBQUNFLE1BQVosR0FBcUIsQ0FBekIsRUFBNEI7QUFDMUJILElBQUFBLEtBQUssQ0FBQ0ksSUFBTixZQUFlSCxXQUFmO0FBQ0Q7O0FBRUQsU0FBT0QsS0FBSyxDQUFDSyxJQUFOLENBQVcsRUFBWCxDQUFQO0FBQ0QsQ0FmTTs7OztBQWlCQSxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNYLEdBQUQsRUFBY1gsTUFBZCxFQUFtQztBQUNqRSxvQkFBbUNXLEdBQUcsQ0FBQ0MsS0FBSixDQUFVLElBQVYsQ0FBbkM7QUFBQTtBQUFBLE1BQU9DLFVBQVA7QUFBQSxNQUFtQkMsWUFBbkI7O0FBRUEsTUFBTWIsU0FBUyxHQUFHLElBQUlFLGVBQUosQ0FBb0JXLFlBQXBCLENBQWxCO0FBRUFkLEVBQUFBLE1BQU0sQ0FBQ00sT0FBUCxDQUFlLFVBQUNpQixLQUFELEVBQVc7QUFDeEJ0QixJQUFBQSxTQUFTLENBQUN1QixNQUFWLENBQWlCRCxLQUFqQjtBQUNELEdBRkQ7QUFJQSxNQUFNUCxLQUFLLEdBQUcsQ0FBQ0gsVUFBRCxDQUFkO0FBRUEsTUFBTUksV0FBVyxHQUFHaEIsU0FBUyxDQUFDaUIsUUFBVixFQUFwQjs7QUFFQSxNQUFJRCxXQUFXLENBQUNFLE1BQVosR0FBcUIsQ0FBekIsRUFBNEI7QUFDMUJILElBQUFBLEtBQUssQ0FBQ0ksSUFBTixZQUFlSCxXQUFmO0FBQ0Q7O0FBRUQsU0FBT0QsS0FBSyxDQUFDSyxJQUFOLENBQVcsRUFBWCxDQUFQO0FBQ0QsQ0FsQk0iLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcGFyYW1zVG9VUkxTZWFyY2hQYXJhbXMgPSA8VCBleHRlbmRzIG9iamVjdD4oXG4gIHBhcmFtczogVCxcbiAgdXJsUGFyYW1zPzogVVJMU2VhcmNoUGFyYW1zLFxuKSA9PiB7XG4gIGNvbnN0IHVybFNlYXJjaFBhcmFtcyA9IHVybFBhcmFtcyA/PyBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHBhcmFtcyk7XG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgdmFsID0gcGFyYW1zW2tleSBhcyBrZXlvZiBUXTtcbiAgICBpZiAodHlwZW9mIHZhbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHVybFNlYXJjaFBhcmFtcy5zZXQoa2V5LCBgJHt2YWx9YCk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdXJsU2VhcmNoUGFyYW1zO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFF1ZXJ5UGFyYW1zID0gPFQgZXh0ZW5kcyBvYmplY3Q+KHVybDogc3RyaW5nLCBwYXJhbXM6IFQpID0+IHtcbiAgY29uc3QgW2Jhc2VTdHJpbmcsIHNlYXJjaFN0cmluZ10gPSB1cmwuc3BsaXQoL1xcPy8pO1xuXG4gIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoc2VhcmNoU3RyaW5nKTtcbiAgY29uc3QgbWVyZ2VQYXJhbXMgPSBwYXJhbXNUb1VSTFNlYXJjaFBhcmFtcyhwYXJhbXMsIHVybFBhcmFtcyk7XG5cbiAgY29uc3QgcGFydHMgPSBbYmFzZVN0cmluZ107XG5cbiAgY29uc3QgcGFyYW1zVG9BZGQgPSBtZXJnZVBhcmFtcy50b1N0cmluZygpO1xuXG4gIGlmIChwYXJhbXNUb0FkZC5sZW5ndGggPiAwKSB7XG4gICAgcGFydHMucHVzaChgPyR7cGFyYW1zVG9BZGR9YCk7XG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbignJyk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlUXVlcnlQYXJhbSA9ICh1cmw6IHN0cmluZywgcGFyYW1zOiBzdHJpbmdbXSkgPT4ge1xuICBjb25zdCBbYmFzZVN0cmluZywgc2VhcmNoU3RyaW5nXSA9IHVybC5zcGxpdCgvXFw/Lyk7XG5cbiAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhzZWFyY2hTdHJpbmcpO1xuXG4gIHBhcmFtcy5mb3JFYWNoKChwYXJhbSkgPT4ge1xuICAgIHVybFBhcmFtcy5kZWxldGUocGFyYW0pO1xuICB9KTtcblxuICBjb25zdCBwYXJ0cyA9IFtiYXNlU3RyaW5nXTtcblxuICBjb25zdCBwYXJhbXNUb0FkZCA9IHVybFBhcmFtcy50b1N0cmluZygpO1xuXG4gIGlmIChwYXJhbXNUb0FkZC5sZW5ndGggPiAwKSB7XG4gICAgcGFydHMucHVzaChgPyR7cGFyYW1zVG9BZGR9YCk7XG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbignJyk7XG59O1xuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface WithRetriesOpts<K> {
|
|
2
|
+
retries?: number;
|
|
3
|
+
onFail?: (error: Error, args: K) => Promise<void> | void;
|
|
4
|
+
onTryError?: (error: Error, args: K, attemptIndex: number) => Promise<void> | void;
|
|
5
|
+
}
|
|
6
|
+
export declare const withRetries: <K extends any[], T>(fn: (...args: K) => Promise<T>, { retries, onTryError, onFail }?: WithRetriesOpts<K>) => (...args: K) => Promise<T>;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.withRetries = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var withRetries = function withRetries(fn) {
|
|
15
|
+
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
16
|
+
_ref$retries = _ref.retries,
|
|
17
|
+
retries = _ref$retries === void 0 ? 2 : _ref$retries,
|
|
18
|
+
onTryError = _ref.onTryError,
|
|
19
|
+
onFail = _ref.onFail;
|
|
20
|
+
|
|
21
|
+
var retFn = /*#__PURE__*/function () {
|
|
22
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
23
|
+
var attemptIndex,
|
|
24
|
+
_len,
|
|
25
|
+
args,
|
|
26
|
+
_key,
|
|
27
|
+
ret,
|
|
28
|
+
_args = arguments;
|
|
29
|
+
|
|
30
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
31
|
+
while (1) {
|
|
32
|
+
switch (_context.prev = _context.next) {
|
|
33
|
+
case 0:
|
|
34
|
+
attemptIndex = 0;
|
|
35
|
+
|
|
36
|
+
for (_len = _args.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
37
|
+
args[_key] = _args[_key];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
case 2:
|
|
41
|
+
if (!(attemptIndex < retries)) {
|
|
42
|
+
_context.next = 30;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
_context.prev = 3;
|
|
47
|
+
_context.next = 6;
|
|
48
|
+
return fn.apply(void 0, args);
|
|
49
|
+
|
|
50
|
+
case 6:
|
|
51
|
+
ret = _context.sent;
|
|
52
|
+
return _context.abrupt("return", ret);
|
|
53
|
+
|
|
54
|
+
case 10:
|
|
55
|
+
_context.prev = 10;
|
|
56
|
+
_context.t0 = _context["catch"](3);
|
|
57
|
+
|
|
58
|
+
if (!(attemptIndex < retries)) {
|
|
59
|
+
_context.next = 23;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
_context.prev = 13;
|
|
64
|
+
_context.next = 16;
|
|
65
|
+
return onTryError === null || onTryError === void 0 ? void 0 : onTryError(_context.t0, args, attemptIndex);
|
|
66
|
+
|
|
67
|
+
case 16:
|
|
68
|
+
_context.next = 23;
|
|
69
|
+
break;
|
|
70
|
+
|
|
71
|
+
case 18:
|
|
72
|
+
_context.prev = 18;
|
|
73
|
+
_context.t1 = _context["catch"](13);
|
|
74
|
+
_context.next = 22;
|
|
75
|
+
return onFail === null || onFail === void 0 ? void 0 : onFail(_context.t1, args);
|
|
76
|
+
|
|
77
|
+
case 22:
|
|
78
|
+
throw _context.t1;
|
|
79
|
+
|
|
80
|
+
case 23:
|
|
81
|
+
attemptIndex += 1;
|
|
82
|
+
|
|
83
|
+
if (!(attemptIndex >= retries)) {
|
|
84
|
+
_context.next = 28;
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
_context.next = 27;
|
|
89
|
+
return onFail === null || onFail === void 0 ? void 0 : onFail(_context.t0, args);
|
|
90
|
+
|
|
91
|
+
case 27:
|
|
92
|
+
throw _context.t0;
|
|
93
|
+
|
|
94
|
+
case 28:
|
|
95
|
+
_context.next = 2;
|
|
96
|
+
break;
|
|
97
|
+
|
|
98
|
+
case 30:
|
|
99
|
+
case "end":
|
|
100
|
+
return _context.stop();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}, _callee, null, [[3, 10], [13, 18]]);
|
|
104
|
+
}));
|
|
105
|
+
|
|
106
|
+
return function retFn() {
|
|
107
|
+
return _ref2.apply(this, arguments);
|
|
108
|
+
};
|
|
109
|
+
}();
|
|
110
|
+
|
|
111
|
+
return retFn;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
exports.withRetries = withRetries;
|
|
115
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy93aXRoUmV0cmllcy50cyJdLCJuYW1lcyI6WyJ3aXRoUmV0cmllcyIsImZuIiwicmV0cmllcyIsIm9uVHJ5RXJyb3IiLCJvbkZhaWwiLCJyZXRGbiIsImF0dGVtcHRJbmRleCIsImFyZ3MiLCJyZXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFNTyxJQUFNQSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUN6QkMsRUFEeUIsRUFHdEI7QUFBQSxpRkFEdUQsRUFDdkQ7QUFBQSwwQkFEREMsT0FDQztBQUFBLE1BRERBLE9BQ0MsNkJBRFMsQ0FDVDtBQUFBLE1BRFlDLFVBQ1osUUFEWUEsVUFDWjtBQUFBLE1BRHdCQyxNQUN4QixRQUR3QkEsTUFDeEI7O0FBQ0gsTUFBTUMsS0FBSztBQUFBLHdGQUFHO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ1JDLGNBQUFBLFlBRFEsR0FDTyxDQURQOztBQUFBLHdDQUFVQyxJQUFWO0FBQVVBLGdCQUFBQSxJQUFWO0FBQUE7O0FBQUE7QUFBQSxvQkFHTEQsWUFBWSxHQUFHSixPQUhWO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQSxxQkFLVUQsRUFBRSxNQUFGLFNBQU1NLElBQU4sQ0FMVjs7QUFBQTtBQUtGQyxjQUFBQSxHQUxFO0FBQUEsK0NBT0RBLEdBUEM7O0FBQUE7QUFBQTtBQUFBOztBQUFBLG9CQVNKRixZQUFZLEdBQUdKLE9BVFg7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBLHFCQVdFQyxVQVhGLGFBV0VBLFVBWEYsdUJBV0VBLFVBQVUsY0FBaUJJLElBQWpCLEVBQXVCRCxZQUF2QixDQVhaOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQWFFRixNQWJGLGFBYUVBLE1BYkYsdUJBYUVBLE1BQU0sY0FBbUJHLElBQW5CLENBYlI7O0FBQUE7QUFBQTs7QUFBQTtBQWlCUkQsY0FBQUEsWUFBWSxJQUFJLENBQWhCOztBQWpCUSxvQkFrQkpBLFlBQVksSUFBSUosT0FsQlo7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxxQkFtQkFFLE1BbkJBLGFBbUJBQSxNQW5CQSx1QkFtQkFBLE1BQU0sY0FBaUJHLElBQWpCLENBbkJOOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEtBQUg7O0FBQUEsb0JBQUxGLEtBQUs7QUFBQTtBQUFBO0FBQUEsS0FBWDs7QUEwQkEsU0FBT0EsS0FBUDtBQUNELENBL0JNIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBXaXRoUmV0cmllc09wdHM8Sz4ge1xuICByZXRyaWVzPzogbnVtYmVyO1xuICBvbkZhaWw/OiAoZXJyb3I6IEVycm9yLCBhcmdzOiBLKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgb25UcnlFcnJvcj86IChlcnJvcjogRXJyb3IsIGFyZ3M6IEssIGF0dGVtcHRJbmRleDogbnVtYmVyKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhSZXRyaWVzID0gPEsgZXh0ZW5kcyBhbnlbXSwgVD4oXG4gIGZuOiAoLi4uYXJnczogSykgPT4gUHJvbWlzZTxUPixcbiAgeyByZXRyaWVzID0gMiwgb25UcnlFcnJvciwgb25GYWlsIH06IFdpdGhSZXRyaWVzT3B0czxLPiA9IHt9LFxuKSA9PiB7XG4gIGNvbnN0IHJldEZuID0gYXN5bmMgKC4uLmFyZ3M6IEspID0+IHtcbiAgICBsZXQgYXR0ZW1wdEluZGV4ID0gMDtcblxuICAgIHdoaWxlIChhdHRlbXB0SW5kZXggPCByZXRyaWVzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXQgPSBhd2FpdCBmbiguLi5hcmdzKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1hd2FpdC1pbi1sb29wXG5cbiAgICAgICAgcmV0dXJuIHJldCBhcyBUO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChhdHRlbXB0SW5kZXggPCByZXRyaWVzKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IG9uVHJ5RXJyb3I/LihlcnIgYXMgRXJyb3IsIGFyZ3MsIGF0dGVtcHRJbmRleCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBhd2FpdCBvbkZhaWw/LihlcnJvciBhcyBFcnJvciwgYXJncyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGF0dGVtcHRJbmRleCArPSAxO1xuICAgICAgICBpZiAoYXR0ZW1wdEluZGV4ID49IHJldHJpZXMpIHtcbiAgICAgICAgICBhd2FpdCBvbkZhaWw/LihlcnIgYXMgRXJyb3IsIGFyZ3MpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHJldEZuIGFzICguLi5hcmdzOiBLKSA9PiBQcm9taXNlPFQ+O1xufTtcbiJdfQ==
|
package/package.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "service-creator",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "A simple abstraction to create \"services\", plain objects that can be used to perform fetch calls in a convention over configuration fashion.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"author": "royriojas",
|
|
9
|
+
"keywords": [
|
|
10
|
+
"create-service",
|
|
11
|
+
"create services",
|
|
12
|
+
"xhr",
|
|
13
|
+
"fetch",
|
|
14
|
+
"fetcher",
|
|
15
|
+
"service"
|
|
16
|
+
],
|
|
17
|
+
"files": [
|
|
18
|
+
"dist/**/*"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"test": "TZ=UTC jest",
|
|
22
|
+
"lint": "eslint --cache --cache-location=node_modules/.cache/ ./src/ --ext .ts,.tsx,.js",
|
|
23
|
+
"check:types": "tsc",
|
|
24
|
+
"verify": "yarn lint && yarn check:types",
|
|
25
|
+
"autofix": "yarn lint --fix",
|
|
26
|
+
"build": "npm run build:types && npm run build:js",
|
|
27
|
+
"build:types": "tsc --emitDeclarationOnly",
|
|
28
|
+
"build:js": "babel src --out-dir dist --extensions \".ts,.tsx,.js\" --source-maps inline",
|
|
29
|
+
"changelog": "changelogx -f markdown -o ./changelog.md",
|
|
30
|
+
"do-changelog": "npm run changelog && git add ./changelog.md && git commit -m 'DOC: Generate changelog' --no-verify",
|
|
31
|
+
"install-hooks": "changelogx install-hook",
|
|
32
|
+
"pre-v": "npm run verify",
|
|
33
|
+
"post-v": "npm run do-changelog && git push --no-verify && git push --tags --no-verify",
|
|
34
|
+
"bump-major": "npm run pre-v && npm version major -m 'BLD: Release v%s' && npm run post-v",
|
|
35
|
+
"bump-minor": "npm run pre-v && npm version minor -m 'BLD: Release v%s' && npm run post-v",
|
|
36
|
+
"bump-patch": "npm run pre-v && npm version patch -m 'BLD: Release v%s' && npm run post-v",
|
|
37
|
+
"bump-prerelease": "npm run pre-v && npm version prerelease -m 'BLD: Release v%s' && npm run post-v",
|
|
38
|
+
"prepublishOnly": "npm run build"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@babel/cli": "7.16.0",
|
|
42
|
+
"@babel/core": "7.16.0",
|
|
43
|
+
"@babel/plugin-transform-runtime": "7.16.0",
|
|
44
|
+
"@babel/preset-env": "7.16.4",
|
|
45
|
+
"@babel/preset-react": "7.16.7",
|
|
46
|
+
"@babel/preset-typescript": "7.16.0",
|
|
47
|
+
"@babel/register": "7.16.0",
|
|
48
|
+
"@types/eslint": "^7.2.5",
|
|
49
|
+
"@types/jest": "27.0.2",
|
|
50
|
+
"@types/node": "17.0.14",
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^4.8.2",
|
|
52
|
+
"@typescript-eslint/parser": "^4.8.2",
|
|
53
|
+
"babel-jest": "27.4.6",
|
|
54
|
+
"changelogx": "5.0.6",
|
|
55
|
+
"eslint": "^7.14.0",
|
|
56
|
+
"eslint-config-airbnb": "^18.2.1",
|
|
57
|
+
"eslint-config-prettier": "^6.15.0",
|
|
58
|
+
"eslint-import-resolver-webpack": "^0.13.0",
|
|
59
|
+
"eslint-plugin-import": "^2.22.1",
|
|
60
|
+
"eslint-plugin-jest": "^24.1.3",
|
|
61
|
+
"eslint-plugin-jest-playwright": "^0.2.1",
|
|
62
|
+
"eslint-plugin-jsx-a11y": "^6.4.1",
|
|
63
|
+
"eslint-plugin-prettier": "^3.1.4",
|
|
64
|
+
"eslint-plugin-react": "^7.21.5",
|
|
65
|
+
"eslint-plugin-react-hooks": "^4.2.0",
|
|
66
|
+
"jest": "27.4.7",
|
|
67
|
+
"prettier": "2.4.1",
|
|
68
|
+
"tslib": "2.7.0",
|
|
69
|
+
"typescript": "5.6.2"
|
|
70
|
+
},
|
|
71
|
+
"dependencies": {
|
|
72
|
+
"@babel/runtime": "7.16.3"
|
|
73
|
+
}
|
|
74
|
+
}
|