1 | "use strict";
|
2 | var __assign = (this && this.__assign) || function () {
|
3 | __assign = Object.assign || function(t) {
|
4 | for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5 | s = arguments[i];
|
6 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7 | t[p] = s[p];
|
8 | }
|
9 | return t;
|
10 | };
|
11 | return __assign.apply(this, arguments);
|
12 | };
|
13 | var __rest = (this && this.__rest) || function (s, e) {
|
14 | var t = {};
|
15 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
16 | t[p] = s[p];
|
17 | if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
18 | for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
19 | if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
20 | t[p[i]] = s[p[i]];
|
21 | }
|
22 | return t;
|
23 | };
|
24 | Object.defineProperty(exports, "__esModule", { value: true });
|
25 | var middleware_1 = require("./middlewares/middleware");
|
26 | function dispatcher(client) {
|
27 | if (client === void 0) { client = fetch; }
|
28 | return function (request) {
|
29 | var url = request.url, context = request.context, requestInit = __rest(request, ["url", "context"]);
|
30 | return client(url, requestInit);
|
31 | };
|
32 | }
|
33 | function withDefaults(request) {
|
34 | return __assign({ context: {}, credentials: 'same-origin', headers: {}, mode: 'same-origin' }, request);
|
35 | }
|
36 | exports.withDefaults = withDefaults;
|
37 | function createHttp(opts) {
|
38 | if (opts === void 0) { opts = {}; }
|
39 | var _a, _b;
|
40 | var dispatchRequest = dispatcher(opts.fetch);
|
41 | var dispatch = (_b = (_a = opts.middleware) === null || _a === void 0 ? void 0 : _a.call(opts, dispatchRequest)) !== null && _b !== void 0 ? _b : dispatchRequest;
|
42 | var executeRequest = middleware_1.compose(dispatch, withDefaults);
|
43 | return function (path, options) {
|
44 | if (options === void 0) { options = {}; }
|
45 | return executeRequest(__assign(__assign({}, options), { url: path }));
|
46 | };
|
47 | }
|
48 | exports.createHttp = createHttp;
|
49 |
|
\ | No newline at end of file |