@gentrace/core
Version:
Core Gentrace Node.JS library
34 lines (28 loc) • 800 B
JavaScript
;
import utils from "../utils.js";
import defaults from "../defaults/index.js";
import AxiosHeaders from "./AxiosHeaders.js";
/**
* Transform the data for a request or a response
*
* @param {Array|Function} fns A single function or Array of functions
* @param {?Object} response The response object
*
* @returns {*} The resulting transformed data
*/
export default function transformData(fns, response) {
const config = this || defaults;
const context = response || config;
const headers = AxiosHeaders.from(context.headers);
let data = context.data;
utils.forEach(fns, function transform(fn) {
data = fn.call(
config,
data,
headers.normalize(),
response ? response.status : undefined
);
});
headers.normalize();
return data;
}