@sap/cli-core
Version:
Command-Line Interface (CLI) Core Module
22 lines (21 loc) • 1.06 kB
JavaScript
import { X_CSRF_TOKEN } from "../../../constants.js";
import { create as createFetchHandler } from "./fetch.js";
import { create as createNextHandler } from "../next.js";
const requiresCsrfToken = (parameterMappings) => !!parameterMappings?.find((param) => param.name === X_CSRF_TOKEN);
const createCsrfTokenFetchHandler = (path, parameterMappings) => createFetchHandler("GET", path, parameterMappings
.filter((param) => param.name !== X_CSRF_TOKEN)
.concat([
{
name: X_CSRF_TOKEN,
in: "header",
source: { type: "value", value: "fetch" },
},
]));
/* jscpd:ignore-start */
export const create = (method, path, parameterMappings, responsePostProcessor) => {
/* jscpd:ignore-end */
if (requiresCsrfToken(parameterMappings)) {
return createNextHandler("commands.handler.fetch", createCsrfTokenFetchHandler(path, parameterMappings), createFetchHandler(method, path, parameterMappings, responsePostProcessor));
}
return createFetchHandler(method, path, parameterMappings, responsePostProcessor);
};