frontend/.pnpm-store/v3/files/38/91823b617e0ba91d3baabef7519a6c43371283343dfe0f696be0f195568e5e77e553802389e5be4f4da3792258f35e62c95b295f31ea5edd22d7070a622080

33 lines
644 B
Plaintext

'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;
};