tra-typed-fetch
Version:
A package that implements common http requests using fetch, allowing for typed responses with typescript
71 lines (70 loc) • 2.65 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.transformRequest = exports.requestMap = exports.mergeConfigs = exports.httpClientCache = exports.buildBaseHeaders = void 0;
var _1 = require(".");
var enums_1 = require("./enums");
var transformRequest = function (request) {
var transformedRequest = __assign(__assign({}, request), { method: request.requestMethod });
if (transformedRequest.requestMethod !== enums_1.RequestMethod.Get) {
Object.defineProperty(transformedRequest, enums_1.RequestParams.Body, {
value: JSON.stringify(transformedRequest.payload),
writable: true,
});
}
if (!transformedRequest.headers) {
transformedRequest.headers = buildBaseHeaders();
}
else {
buildBaseHeaders().forEach(function (value, key) { var _a; return (_a = transformedRequest.headers) === null || _a === void 0 ? void 0 : _a.append(key, value); });
}
return transformedRequest;
};
exports.transformRequest = transformRequest;
var requestMap = (_a = {},
_a[enums_1.RequestMethod.Get] = _1.get,
_a[enums_1.RequestMethod.Patch] = _1.patch,
_a[enums_1.RequestMethod.Post] = _1.post,
_a[enums_1.RequestMethod.Put] = _1.put,
_a[enums_1.RequestMethod.Destroy] = _1.destroy,
_a);
exports.requestMap = requestMap;
var buildBaseHeaders = function () {
return new Headers({
'Content-Type': 'application/json',
});
};
exports.buildBaseHeaders = buildBaseHeaders;
var mergeConfigs = function (baseConfiguration, params) {
var headers = new Headers();
if (params.headers) {
params.headers.forEach(function (value, key) { return headers.append(key, value); });
}
if (baseConfiguration.defaultHeaders) {
baseConfiguration.defaultHeaders.forEach(function (value, key) {
return headers.append(key, value);
});
}
var config = {
headers: headers,
url: "" + baseConfiguration.baseUrl + params.url,
};
if ('payload' in params) {
return __assign(__assign({}, config), { payload: params.payload });
}
return config;
};
exports.mergeConfigs = mergeConfigs;
var httpClientCache = new Map();
exports.httpClientCache = httpClientCache;