Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/request / dist / deps / fromOneRequestToSerialized.js
Size: Mime:
"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