function wrapResponse(res) { var passThrough = new PassThrough(); passThrough.statusCode = res.statusCode; passThrough.rawHeaderNames = res.rawHeaderNames; passThrough.headers = lowerCaseify(res.headers); passThrough.headers.server = config.name; res.body != null && passThrough.push(Buffer.isBuffer(res.body) ? res.body : String(res.body)); passThrough.push(null); return passThrough; }
function toBuffer(buf) { if (buf == null || Buffer.isBuffer(buf)) { return buf; } buf += ''; return Buffer.from(buf); }
function joinData(list, isText) { if (!list || !list.length) { return ''; } if (isText) { return list.filter(noop).join('\r\n'); } var result = []; list.forEach(function(buf) { if (buf) { buf = Buffer.isBuffer(buf) ? buf : Buffer.from(buf + ''); result.push(buf, CRLF); } }); result.pop(); return result.length ? Buffer.concat(result) : ''; }
function decode(buf) { if (!Buffer.isBuffer(buf)) { return buf ? String(buf) : ''; } if (!isUtf8(buf)) { try { return iconv.decode(buf, 'GB18030'); } catch(e) {} } return String(buf); }
function toBuffer(buf, charset) { if (buf == null || Buffer.isBuffer(buf)) { return buf; } buf += ''; if (charset && typeof charset === 'string' && !UTF8_RE.test(charset)) { try { charset = charset.toLowerCase(); if (charset === 'base64') { return Buffer.from(buf, 'base64'); } return iconv.encode(buf, charset); } catch (e) {} } return Buffer.from(buf); }
var pushFrame = function(reqId, data, opts, isClient) { if (data == null) { return; } if (!Buffer.isBuffer(data)) { try { if (typeof data !== 'string') { data = JSON.stringify(data); } data = Buffer.from(data); } catch(e) { data = null; } } if (!data) { return; } opts = getFrameOpts(opts); opts.reqId = reqId; opts.frameId = getFrameId(); opts.isClient = isClient; opts.length = data.length; if (opts.length > MAX_BUF_LEN) { data = data.slice(0, MAX_BUF_LEN); } opts.base64 = data.toString('base64'); addFrame(opts); }
function toBinary(data) { if (!data || Buffer.isBuffer(data)) { return data && data.length && data; } if (typeof data !== 'string') { try { data = JSON.stringify(data); } catch (e) { return; } } return Buffer.from(data); }
function getBuffer(data) { return !data || Buffer.isBuffer(data) ? data : Buffer.from(String(data)); }
function signatureAsBuffer(signature) { if (Buffer.isBuffer(signature)) { return signature; } else if ('string' === typeof signature) { return Buffer.from(signature, 'base64'); } throw new TypeError('ECDSA signature must be a Base64 string or a Buffer'); }