UNPKG

@stordata/vsphere-soapify

Version:

A NodeJS abstraction layer for the vSphere SOAP API

38 lines (26 loc) 955 B
'use strict'; const axios = require('axios'), { CookieJar } = require('tough-cookie'); module.exports = (endpoint, options) => enableCookieJarSupport(endpoint, axios.create(options)); // function enableCookieJarSupport(endpoint, instance) { const jar = new CookieJar(); // In-memory, synchronous cookie jar instance.interceptors.request.use(requestInterceptor(endpoint, jar)); instance.interceptors.response.use(responseInterceptor(endpoint, jar)); return instance; } function requestInterceptor(endpoint, jar) { return function interceptorSettingCookiesFromJar(req) { req.headers.Cookie = jar.getCookieStringSync(endpoint); return req; }; } function responseInterceptor(endpoint, jar) { return function interceptorStoringCookiesInJar(res) { const { headers: { 'set-cookie': cookies } } = res; if (cookies) { cookies.forEach(cookie => jar.setCookieSync(cookie, endpoint)); } return res; }; }