trouble-in-terror-town/node_modules/got/source/utils/get-body-size.js
Mikolaj 2bbacbea09 did some more work on networking and removed EOS in favor of LRM
did some more work on networking and removed EOS in favor of Light Reflective Mirror
2022-05-31 15:04:31 +02:00

32 lines
644 B
JavaScript

'use strict';
const fs = require('fs');
const util = require('util');
const is = require('@sindresorhus/is');
const isFormData = require('./is-form-data');
module.exports = async options => {
const {body} = options;
if (options.headers['content-length']) {
return Number(options.headers['content-length']);
}
if (!body && !options.stream) {
return 0;
}
if (is.string(body)) {
return Buffer.byteLength(body);
}
if (isFormData(body)) {
return util.promisify(body.getLength.bind(body))();
}
if (body instanceof fs.ReadStream) {
const {size} = await util.promisify(fs.stat)(body.path);
return size;
}
return null;
};