summaryrefslogtreecommitdiff
path: root/lib/internal/streams/state.js
diff options
context:
space:
mode:
authorDaniel Bevenius <daniel.bevenius@gmail.com>2018-04-30 07:14:00 +0200
committerRuben Bridgewater <ruben@bridgewater.de>2018-05-18 15:22:42 +0200
commit9b24be1340b702131efcf3fd7a65b7ac4c269711 (patch)
treece647771984341f6cd028974360ed2895d99fc2b /lib/internal/streams/state.js
parent7d81f5d1435a208f34f0d3ca15034ff8eaf060ce (diff)
downloadandroid-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.js20
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