jsforce
Version:
Salesforce API Library for JavaScript
36 lines • 4.33 kB
JavaScript
import "core-js/modules/es.number.constructor.js";
import "core-js/modules/es.object.to-string.js";
import "core-js/modules/es.regexp.to-string.js";
import is from '@sindresorhus/is';
export function getBodySize(body) {
var headers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
function isFormData(body) {
return is.nodeStream(body) && is.function_(body.getBoundary);
}
if (headers && 'content-length' in headers) {
return Number(headers['content-length']);
}
if (!body) {
return 0;
}
if (is.string(body)) {
return Buffer.byteLength(body);
}
if (is.urlSearchParams(body)) {
return Buffer.byteLength(body.toString());
}
if (is.buffer(body)) {
return body.length;
}
try {
// `getLengthSync` will throw if body has a stream:
// https://github.com/form-data/form-data#integer-getlengthsync
if (isFormData(body)) {
return body.getLengthSync();
}
} catch (_unused) {
return undefined;
}
return undefined;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpcyIsImdldEJvZHlTaXplIiwiYm9keSIsImhlYWRlcnMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJpc0Zvcm1EYXRhIiwibm9kZVN0cmVhbSIsImZ1bmN0aW9uXyIsImdldEJvdW5kYXJ5IiwiTnVtYmVyIiwic3RyaW5nIiwiQnVmZmVyIiwiYnl0ZUxlbmd0aCIsInVybFNlYXJjaFBhcmFtcyIsInRvU3RyaW5nIiwiYnVmZmVyIiwiZ2V0TGVuZ3RoU3luYyIsIl91bnVzZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9nZXQtYm9keS1zaXplLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhZGFibGUgfSBmcm9tICdub2RlOnN0cmVhbSc7XG5pbXBvcnQgeyBIdHRwQm9keSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCBpcyBmcm9tICdAc2luZHJlc29yaHVzL2lzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvZHlTaXplKFxuICBib2R5OiBIdHRwQm9keSB8IHVuZGVmaW5lZCxcbiAgaGVhZGVyczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSxcbik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGZ1bmN0aW9uIGlzRm9ybURhdGEoYm9keTogdW5rbm93bik6IGJvZHkgaXMgRm9ybURhdGEge1xuICAgIHJldHVybiBpcy5ub2RlU3RyZWFtKGJvZHkpICYmIGlzLmZ1bmN0aW9uXygoYm9keSBhcyBGb3JtRGF0YSkuZ2V0Qm91bmRhcnkpO1xuICB9XG5cbiAgaWYgKGhlYWRlcnMgJiYgJ2NvbnRlbnQtbGVuZ3RoJyBpbiBoZWFkZXJzKSB7XG4gICAgcmV0dXJuIE51bWJlcihoZWFkZXJzWydjb250ZW50LWxlbmd0aCddKTtcbiAgfVxuXG4gIGlmICghYm9keSkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKGlzLnN0cmluZyhib2R5KSkge1xuICAgIHJldHVybiBCdWZmZXIuYnl0ZUxlbmd0aChib2R5KTtcbiAgfVxuXG4gIGlmIChpcy51cmxTZWFyY2hQYXJhbXMoYm9keSkpIHtcbiAgICByZXR1cm4gQnVmZmVyLmJ5dGVMZW5ndGgoYm9keS50b1N0cmluZygpKTtcbiAgfVxuXG4gIGlmIChpcy5idWZmZXIoYm9keSkpIHtcbiAgICByZXR1cm4gYm9keS5sZW5ndGg7XG4gIH1cblxuICB0cnkge1xuICAgIC8vIGBnZXRMZW5ndGhTeW5jYCB3aWxsIHRocm93IGlmIGJvZHkgaGFzIGEgc3RyZWFtOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtLWRhdGEvZm9ybS1kYXRhI2ludGVnZXItZ2V0bGVuZ3Roc3luY1xuICAgIGlmIChpc0Zvcm1EYXRhKGJvZHkpKSB7XG4gICAgICByZXR1cm4gYm9keS5nZXRMZW5ndGhTeW5jKCk7XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxudHlwZSBGb3JtRGF0YSA9IHtcbiAgZ2V0Qm91bmRhcnk6ICgpID0+IHN0cmluZztcbiAgZ2V0TGVuZ3RoOiAoY2FsbGJhY2s6IChlcnJvcjogRXJyb3IgfCBudWxsLCBsZW5ndGg6IG51bWJlcikgPT4gdm9pZCkgPT4gdm9pZDtcbn0gJiBSZWFkYWJsZTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsT0FBT0EsRUFBRSxNQUFNLGtCQUFrQjtBQUVqQyxPQUFPLFNBQVNDLFdBQVdBLENBQ3pCQyxJQUEwQixFQUVOO0VBQUEsSUFEcEJDLE9BQW1DLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUV4QyxTQUFTRyxVQUFVQSxDQUFDTCxJQUFhLEVBQW9CO0lBQ25ELE9BQU9GLEVBQUUsQ0FBQ1EsVUFBVSxDQUFDTixJQUFJLENBQUMsSUFBSUYsRUFBRSxDQUFDUyxTQUFTLENBQUVQLElBQUksQ0FBY1EsV0FBVyxDQUFDO0VBQzVFO0VBRUEsSUFBSVAsT0FBTyxJQUFJLGdCQUFnQixJQUFJQSxPQUFPLEVBQUU7SUFDMUMsT0FBT1EsTUFBTSxDQUFDUixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztFQUMxQztFQUVBLElBQUksQ0FBQ0QsSUFBSSxFQUFFO0lBQ1QsT0FBTyxDQUFDO0VBQ1Y7RUFFQSxJQUFJRixFQUFFLENBQUNZLE1BQU0sQ0FBQ1YsSUFBSSxDQUFDLEVBQUU7SUFDbkIsT0FBT1csTUFBTSxDQUFDQyxVQUFVLENBQUNaLElBQUksQ0FBQztFQUNoQztFQUVBLElBQUlGLEVBQUUsQ0FBQ2UsZUFBZSxDQUFDYixJQUFJLENBQUMsRUFBRTtJQUM1QixPQUFPVyxNQUFNLENBQUNDLFVBQVUsQ0FBQ1osSUFBSSxDQUFDYyxRQUFRLENBQUMsQ0FBQyxDQUFDO0VBQzNDO0VBRUEsSUFBSWhCLEVBQUUsQ0FBQ2lCLE1BQU0sQ0FBQ2YsSUFBSSxDQUFDLEVBQUU7SUFDbkIsT0FBT0EsSUFBSSxDQUFDRyxNQUFNO0VBQ3BCO0VBRUEsSUFBSTtJQUNGO0lBQ0E7SUFDQSxJQUFJRSxVQUFVLENBQUNMLElBQUksQ0FBQyxFQUFFO01BQ3BCLE9BQU9BLElBQUksQ0FBQ2dCLGFBQWEsQ0FBQyxDQUFDO0lBQzdCO0VBQ0YsQ0FBQyxDQUFDLE9BQUFDLE9BQUEsRUFBTTtJQUNOLE9BQU9iLFNBQVM7RUFDbEI7RUFFQSxPQUFPQSxTQUFTO0FBQ2xCIiwiaWdub3JlTGlzdCI6W119