lib: created isValidCallback helper

check for callback function is moved to a separate function.
This piece of code is being shared by other entities as well.

PR-URL: https://github.com/nodejs/node/pull/32665
Reviewed-By: Zeyu Yang <himself65@outlook.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
pull/32840/head
Yash Ladha 2020-04-05 15:05:52 +05:30 committed by himself65
parent d1587dcd0a
commit 55b4d030ef
2 changed files with 12 additions and 11 deletions

View File

@ -14,7 +14,8 @@ const {
ERR_INVALID_ARG_TYPE,
ERR_INVALID_ARG_VALUE,
ERR_OUT_OF_RANGE,
ERR_UNKNOWN_SIGNAL
ERR_UNKNOWN_SIGNAL,
ERR_INVALID_CALLBACK,
}
} = require('internal/errors');
const { normalizeEncoding } = require('internal/util');
@ -194,6 +195,11 @@ function validatePort(port, name = 'Port', { allowZero = true } = {}) {
return port | 0;
}
const validateCallback = hideStackFrames((callback) => {
if (typeof callback !== 'function')
throw new ERR_INVALID_CALLBACK(callback);
});
module.exports = {
isInt32,
isUint32,
@ -210,4 +216,5 @@ module.exports = {
validateSignalName,
validateString,
validateUint32,
validateCallback,
};

View File

@ -53,8 +53,8 @@ const {
promisify: { custom: customPromisify },
deprecate
} = require('internal/util');
const { ERR_INVALID_CALLBACK } = require('internal/errors').codes;
const debug = require('internal/util/debuglog').debuglog('timer');
const { validateCallback } = require('internal/validators');
const {
destroyHooksExist,
@ -118,9 +118,7 @@ function enroll(item, msecs) {
function setTimeout(callback, after, arg1, arg2, arg3) {
if (typeof callback !== 'function') {
throw new ERR_INVALID_CALLBACK(callback);
}
validateCallback(callback);
let i, args;
switch (arguments.length) {
@ -165,9 +163,7 @@ function clearTimeout(timer) {
}
function setInterval(callback, repeat, arg1, arg2, arg3) {
if (typeof callback !== 'function') {
throw new ERR_INVALID_CALLBACK(callback);
}
validateCallback(callback);
let i, args;
switch (arguments.length) {
@ -249,9 +245,7 @@ const Immediate = class Immediate {
};
function setImmediate(callback, arg1, arg2, arg3) {
if (typeof callback !== 'function') {
throw new ERR_INVALID_CALLBACK(callback);
}
validateCallback(callback);
let i, args;
switch (arguments.length) {