@salesforce/apex-node
Version:
Salesforce JS library for Apex
38 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.encodeBody = encodeBody;
/*
* Copyright (c) 2020, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
const types_1 = require("./types");
const xmlCharMap = {
'<': '<',
'>': '>',
'&': '&',
'"': '"',
"'": '''
};
const escapeXml = (data) => data.replace(/[<>&'\"]/g, (char) => xmlCharMap[char]);
function encodeBody(accessToken, data) {
const escapedData = escapeXml(data);
return `<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cmd="http://soap.sforce.com/2006/08/apex"
xmlns:apex="http://soap.sforce.com/2006/08/apex">
<env:Header>
<cmd:SessionHeader>
<cmd:sessionId>${accessToken}</cmd:sessionId>
</cmd:SessionHeader>
<apex:DebuggingHeader><apex:debugLevel>DEBUGONLY</apex:debugLevel></apex:DebuggingHeader>
</env:Header>
<env:Body>
<${types_1.action} xmlns="http://soap.sforce.com/2006/08/apex">
<apexcode>${escapedData}</apexcode>
</${types_1.action}>
</env:Body>
</env:Envelope>`;
}
//# sourceMappingURL=utils.js.map