diff options
author | Daniel Bevenius <daniel.bevenius@gmail.com> | 2018-04-30 07:14:00 +0200 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2018-05-18 15:22:42 +0200 |
commit | 9b24be1340b702131efcf3fd7a65b7ac4c269711 (patch) | |
tree | ce647771984341f6cd028974360ed2895d99fc2b /lib/internal/streams/state.js | |
parent | 7d81f5d1435a208f34f0d3ca15034ff8eaf060ce (diff) | |
download | android-node-v8-9b24be1340b702131efcf3fd7a65b7ac4c269711.tar.gz android-node-v8-9b24be1340b702131efcf3fd7a65b7ac4c269711.tar.bz2 android-node-v8-9b24be1340b702131efcf3fd7a65b7ac4c269711.zip |
stream: refactor getHighWaterMark in state.js
This commit aims to reduce some code duplication in state.js
PR-URL: https://github.com/nodejs/node/pull/20415
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Diffstat (limited to 'lib/internal/streams/state.js')
-rw-r--r-- | lib/internal/streams/state.js | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/internal/streams/state.js b/lib/internal/streams/state.js index 4a1b49d25c..c54c8230c7 100644 --- a/lib/internal/streams/state.js +++ b/lib/internal/streams/state.js @@ -2,19 +2,19 @@ const { ERR_INVALID_OPT_VALUE } = require('internal/errors').codes; +function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : + isDuplex ? options[duplexKey] : null; +} + function getHighWaterMark(state, options, duplexKey, isDuplex) { - let hwm = options.highWaterMark; + const hwm = highWaterMarkFrom(options, isDuplex, duplexKey); if (hwm != null) { - if (typeof hwm !== 'number' || !(hwm >= 0)) - throw new ERR_INVALID_OPT_VALUE('highWaterMark', hwm); - return Math.floor(hwm); - } else if (isDuplex) { - hwm = options[duplexKey]; - if (hwm != null) { - if (typeof hwm !== 'number' || !(hwm >= 0)) - throw new ERR_INVALID_OPT_VALUE(duplexKey, hwm); - return Math.floor(hwm); + if (!Number.isInteger(hwm) || hwm < 0) { + const name = isDuplex ? duplexKey : 'highWaterMark'; + throw new ERR_INVALID_OPT_VALUE(name, hwm); } + return Math.floor(hwm); } // Default value |