function createFrom()

in apps/mountebank-mock/mountebank-source/src/models/http/httpRequest.js [53:80]


function createFrom (request) {
    return new Promise(resolve => {
        const chunks = [];
        request.on('data', chunk => { chunks.push(Buffer.from(chunk)); });
        request.on('end', () => {
            const headersMap = headersMapModule.ofRaw(request.rawHeaders),
                contentEncoding = headersMap.get('Content-Encoding'),
                buffer = Buffer.concat(chunks);

            if (contentEncoding === 'gzip') {
                try {
                    request.body = zlib.gunzipSync(buffer).toString();
                }
                catch (error) { /* do nothing */ }
            }
            else if (contentEncoding === 'br') {
                try {
                    request.body = zlib.brotliDecompressSync(buffer).toString();
                }
                catch (error) { /* do nothing */ }
            }
            else {
                request.body = buffer.toString();
            }
            resolve(transform(request));
        });
    });
}