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