Repository URL to install this package:
|
Version:
7.1.2 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @file @todo rewrite and split this file elsewhere
* ^ this is here because we are doing this for logging & tests
*/
const exotic_1 = require("exotic");
const config_1 = require("../config");
const fetch_1 = require("../adapters/fetch");
const fromParamsToStringified_1 = require("../deps/fromParamsToStringified");
const fromHeadersToSerialized_1 = require("./fromHeadersToSerialized");
const cloneURL_1 = require("./cloneURL");
// @todo need to test POST
function fromBodyToSerialized(body) {
// @todo
}
exports.fromBodyToSerialized = fromBodyToSerialized;
var cloneURL_2 = require("./cloneURL");
exports.cloneURL = cloneURL_2.cloneURL;
var fromHeadersToSerialized_2 = require("./fromHeadersToSerialized");
exports.fromHeadersToSerialized = fromHeadersToSerialized_2.fromHeadersToSerialized;
function fromParamsToSerializedUrlParams(params, request) {
const stringifiedParams = fromParamsToStringified_1.fromParamsToStringified(params);
const requestStore = exotic_1.isMap(request) ? request : request.store;
const url = cloneURL_1.cloneURL(requestStore.get('urlObj'));
fetch_1.setParamsOnSearchParams(stringifiedParams, url);
return url;
}
exports.fromParamsToSerializedUrlParams = fromParamsToSerializedUrlParams;
// @todo typings with the Url stuff
// @todo for more accurate output, need to use URLSearchParams
function fromParamsToSerialized(params, request) {
const url = fromParamsToSerializedUrlParams(params, request);
const serializedParams = {};
url.searchParams.forEach((value, key) => {
serializedParams[key] = value;
});
return serializedParams;
}
exports.fromParamsToSerialized = fromParamsToSerialized;
exports.toValue = (request, constantHeader) => {
if (exotic_1.isFunction(constantHeader)) {
return constantHeader(request.store);
}
else {
return constantHeader;
}
};
/**
* @todo may want to clone
*/
function fromOneRequestToSerialized(request) {
const headers = request.store.get('headers');
const params = request.store.get('params');
const url = request.store.get('url');
// const urlObj = request.store.get('urlObj')
// const baseUrl = request.store.get('baseUrl')
// const path = request.store.get('path')
const body = request.store.get('body');
const method = request.store.get('method');
const named = request.store.get('named');
const jwt = request.store.get('jwt');
const debug = request.store.get('debug');
// have to see how jest serializes functions
const tapResponse = request.store.get('tapResponse');
const tapParams = request.store.get('tapParams');
/**
* @todo move this whole merging separately
* @todo @invalid THIS IS OVERRIDING THE HEADERS WITH CONSTANT HEADERS!
*/
const mergedHeaders = fromHeadersToSerialized_1.fromHeadersToSerialized(headers);
const constantHeaders = config_1.config.get('constantHeaders');
Object.keys(constantHeaders)
// .filter(key => mergedHeaders[key] !== undefined)
.forEach(key => {
const constantHeader = constantHeaders[key];
mergedHeaders[key] = exports.toValue(request, constantHeader);
});
// @todo add same dynamic fn thing to params...
const mergedParams = fromParamsToSerialized(params, request);
const constantParams = config_1.config.get('constantParams');
Object.assign(mergedParams, constantParams);
const { href } = fromParamsToSerializedUrlParams(mergedParams, request);
const asSerialized = {
// headers,
// mergedHeaders,
// mergedParams,
// params,
params: mergedParams,
headers: mergedHeaders,
url,
href,
// urlObj,
// baseUrl,
// path,
body,
method,
named,
jwt,
debug,
};
// @note - for snapshots
Object.keys(asSerialized).forEach(key => {
if (asSerialized[key] === undefined) {
delete asSerialized[key];
}
});
return asSerialized;
// const asAutoFixed = autofix(asSerialized)
// return asAutoFixed
}
exports.fromOneRequestToSerialized = fromOneRequestToSerialized;
//# sourceMappingURL=fromOneRequestToSerialized.js.map