Skip to content

Commit

Permalink
lib: refactor to use validators in http2
Browse files Browse the repository at this point in the history
Refs: #46101
PR-URL: #46174
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
  • Loading branch information
debadree25 committed Jan 24, 2023
1 parent e8d4015 commit e4d641f
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 15 deletions.
23 changes: 12 additions & 11 deletions lib/internal/http2/core.js
Expand Up @@ -126,7 +126,8 @@ const {
validateNumber,
validateString,
validateUint32,
validateAbortSignal
validateAbortSignal,
validateBoolean,
} = require('internal/validators');
const fsPromisesInternal = require('internal/fs/promises');
const { utcDate } = require('internal/http');
Expand Down Expand Up @@ -761,26 +762,26 @@ function requestOnConnect(headers, options) {
const setAndValidatePriorityOptions = hideStackFrames((options) => {
if (options.weight === undefined) {
options.weight = NGHTTP2_DEFAULT_WEIGHT;
} else if (typeof options.weight !== 'number') {
throw new ERR_INVALID_ARG_VALUE('options.weight', options.weight);
} else {
validateNumber(options.weight, 'options.weight');
}

if (options.parent === undefined) {
options.parent = 0;
} else if (typeof options.parent !== 'number' || options.parent < 0) {
throw new ERR_INVALID_ARG_VALUE('options.parent', options.parent);
} else {
validateNumber(options.parent, 'options.parent', 0);
}

if (options.exclusive === undefined) {
options.exclusive = false;
} else if (typeof options.exclusive !== 'boolean') {
throw new ERR_INVALID_ARG_VALUE('options.exclusive', options.exclusive);
} else {
validateBoolean(options.exclusive, 'options.exclusive');
}

if (options.silent === undefined) {
options.silent = false;
} else if (typeof options.silent !== 'boolean') {
throw new ERR_INVALID_ARG_VALUE('options.silent', options.silent);
} else {
validateBoolean(options.silent, 'options.silent');
}
});

Expand Down Expand Up @@ -1784,8 +1785,8 @@ class ClientHttp2Session extends Http2Session {
// stream by default if the user has not specifically indicated a
// preference.
options.endStream = isPayloadMeaningless(headers[HTTP2_HEADER_METHOD]);
} else if (typeof options.endStream !== 'boolean') {
throw new ERR_INVALID_ARG_VALUE('options.endStream', options.endStream);
} else {
validateBoolean(options.endStream, 'options.endStream');
}

const headersList = mapToHeaders(headers);
Expand Down
5 changes: 1 addition & 4 deletions test/parallel/test-http2-client-request-options-errors.js
Expand Up @@ -5,7 +5,6 @@ if (!common.hasCrypto)
common.skip('missing crypto');
const assert = require('assert');
const http2 = require('http2');
const { inspect } = require('util');

// Check if correct errors are emitted when wrong type of data is passed
// to certain options of ClientHttp2Session request method
Expand Down Expand Up @@ -48,9 +47,7 @@ server.listen(0, common.mustCall(() => {
[option]: types[type]
}), {
name: 'TypeError',
code: 'ERR_INVALID_ARG_VALUE',
message: `The property 'options.${option}' is invalid. ` +
`Received ${inspect(types[type])}`
code: 'ERR_INVALID_ARG_TYPE',
});
});
});
Expand Down

0 comments on commit e4d641f

Please sign in to comment.