mirror of https://github.com/nodejs/node.git
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
parent
d1587dcd0a
commit
55b4d030ef
|
@ -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,
|
||||
};
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue