| 'use strict'; |
| |
| var ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE; |
| |
| function highWaterMarkFrom(options, isDuplex, duplexKey) { |
| return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; |
| } |
| |
| function getHighWaterMark(state, options, duplexKey, isDuplex) { |
| var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); |
| |
| if (hwm != null) { |
| if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { |
| var name = isDuplex ? duplexKey : 'highWaterMark'; |
| throw new ERR_INVALID_OPT_VALUE(name, hwm); |
| } |
| |
| return Math.floor(hwm); |
| } // Default value |
| |
| |
| return state.objectMode ? 16 : 16 * 1024; |
| } |
| |
| module.exports = { |
| getHighWaterMark: getHighWaterMark |
| }; |