UNPKG

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
"use strict"; 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;