liveperson-functions-cli
Version:
LivePerson Functions CLI
49 lines • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConnectToSalesforce = void 0;
const jsforce_1 = require("jsforce");
const headers_gen_1 = require("../shared/headers-gen");
function injectRequiredOptions(currentOptions) {
let mergedOptions;
if (process.env.HTTPS_PROXY) {
mergedOptions = Object.assign({}, currentOptions, {
rejectUnauthorized: false,
tunnel: false,
headers: {},
proxy: process.env.HTTPS_PROXY || 'https://lp-faasproxy-web.faas',
agentOptions: {
secureProtocol: 'TLSv1_2_method',
},
});
}
else {
mergedOptions = Object.assign({}, currentOptions, {
rejectUnauthorized: false,
headers: {},
agentOptions: {
secureProtocol: 'TLSv1_2_method',
},
});
}
mergedOptions.headers = Object.assign({}, currentOptions.headers, (0, headers_gen_1.GenerateHeaders)());
return mergedOptions;
}
/**
* ConnectToSalesforce creates a standard JSForce Connection object and preconfigures it
* to allow it to communicate with the Proxy and send Requests in the correct format.
* @param params Connection Options
* @returns Salesforce Connection
*/
function ConnectToSalesforce(params) {
const con = new jsforce_1.Connection(params);
// Intercepting all outgoing HTTP Calls
const originalTransport = con._transport.httpRequest.bind(con._transport);
// Correcting the format of the HTTP Calls to satisfy the needs of our proxy
con._transport.httpRequest = (request, options, cb) => {
const newRequest = injectRequiredOptions(request);
return originalTransport(newRequest, options, cb);
};
return con;
}
exports.ConnectToSalesforce = ConnectToSalesforce;
//# sourceMappingURL=salesforce.js.map