@@ -179,12 +179,6 @@ function showTruncateDeprecation() {
179179 }
180180}
181181
182- function maybeCallback(cb) {
183- validateFunction(cb, 'cb');
184-
185- return cb;
186- }
187-
188182// Ensure that callbacks run in the global context. Only use this function
189183// for callbacks that are passed to the binding layer, callbacks that are
190184// invoked from JS already run in the proper scope.
@@ -258,7 +252,7 @@ function accessSync(path, mode) {
258252 * @returns {void}
259253 */
260254function exists(path, callback) {
261- maybeCallback (callback);
255+ validateFunction (callback, 'cb' );
262256
263257 function suppressedCallback(err) {
264258 callback(err ? false : true);
@@ -368,7 +362,8 @@ function checkAborted(signal, callback) {
368362 * @returns {void}
369363 */
370364function readFile(path, options, callback) {
371- callback = maybeCallback(callback || options);
365+ callback ||= options;
366+ validateFunction(callback, 'cb');
372367 options = getOptions(options, { flag: 'r' });
373368 const ReadFileContext = require('internal/fs/read/context');
374369 const context = new ReadFileContext(callback, options.encoding);
@@ -650,7 +645,7 @@ function read(fd, buffer, offsetOrOptions, length, position, callback) {
650645 }
651646
652647 validateBuffer(buffer);
653- callback = maybeCallback (callback);
648+ validateFunction (callback, 'cb' );
654649
655650 if (offset == null) {
656651 offset = 0;
@@ -773,7 +768,8 @@ function readv(fd, buffers, position, callback) {
773768
774769 fd = getValidatedFd(fd);
775770 validateBufferArray(buffers);
776- callback = maybeCallback(callback || position);
771+ callback ||= position;
772+ validateFunction(callback, 'cb');
777773
778774 const req = new FSReqCallback();
779775 req.oncomplete = wrapper;
@@ -830,7 +826,8 @@ function write(fd, buffer, offsetOrOptions, length, position, callback) {
830826
831827 let offset = offsetOrOptions;
832828 if (isArrayBufferView(buffer)) {
833- callback = maybeCallback(callback || position || length || offset);
829+ callback ||= position || length || offset;
830+ validateFunction(callback, 'cb');
834831
835832 if (typeof offset === 'object') {
836833 ({
@@ -871,7 +868,8 @@ function write(fd, buffer, offsetOrOptions, length, position, callback) {
871868
872869 const str = buffer;
873870 validateEncoding(str, length);
874- callback = maybeCallback(position);
871+ callback = position;
872+ validateFunction(callback, 'cb');
875873
876874 const req = new FSReqCallback();
877875 req.oncomplete = wrapper;
@@ -952,7 +950,8 @@ function writev(fd, buffers, position, callback) {
952950
953951 fd = getValidatedFd(fd);
954952 validateBufferArray(buffers);
955- callback = maybeCallback(callback || position);
953+ callback ||= position;
954+ validateFunction(callback, 'cb');
956955
957956 if (buffers.length === 0) {
958957 process.nextTick(callback, null, 0, buffers);
@@ -1053,7 +1052,7 @@ function truncate(path, len, callback) {
10531052
10541053 validateInteger(len, 'len');
10551054 len = MathMax(0, len);
1056- callback = maybeCallback (callback);
1055+ validateFunction (callback, 'cb' );
10571056 fs.open(path, 'r+', (er, fd) => {
10581057 if (er) return callback(er);
10591058 const req = new FSReqCallback();
@@ -1587,7 +1586,7 @@ function statfs(path, options = { bigint: false }, callback) {
15871586 callback = options;
15881587 options = kEmptyObject;
15891588 }
1590- callback = maybeCallback (callback);
1589+ validateFunction (callback, 'cb' );
15911590 path = getValidatedPath(path);
15921591 const req = new FSReqCallback(options.bigint);
15931592 req.oncomplete = (err, stats) => {
@@ -1909,7 +1908,7 @@ function fchmodSync(fd, mode) {
19091908 * @returns {void}
19101909 */
19111910function lchmod(path, mode, callback) {
1912- callback = maybeCallback (callback);
1911+ validateFunction (callback, 'cb' );
19131912 mode = parseFileMode(mode, 'mode');
19141913 fs.open(path, O_WRONLY | O_SYMLINK, (err, fd) => {
19151914 if (err) {
@@ -2267,7 +2266,8 @@ function writeAll(fd, isUserFd, buffer, offset, length, signal, flush, callback)
22672266 * @returns {void}
22682267 */
22692268function writeFile(path, data, options, callback) {
2270- callback = maybeCallback(callback || options);
2269+ callback ||= options;
2270+ validateFunction(callback, 'cb');
22712271 options = getOptions(options, {
22722272 encoding: 'utf8',
22732273 mode: 0o666,
@@ -2383,7 +2383,8 @@ function writeFileSync(path, data, options) {
23832383 * @returns {void}
23842384 */
23852385function appendFile(path, data, options, callback) {
2386- callback = maybeCallback(callback || options);
2386+ callback ||= options;
2387+ validateFunction(callback, 'cb');
23872388 options = getOptions(options, { encoding: 'utf8', mode: 0o666, flag: 'a' });
23882389
23892390 // Don't make changes directly on options object
@@ -2778,7 +2779,11 @@ realpathSync.native = (path, options) => {
27782779 * @returns {void}
27792780 */
27802781function realpath(p, options, callback) {
2781- callback = typeof options === 'function' ? options : maybeCallback(callback);
2782+ if (typeof options === 'function') {
2783+ callback = options;
2784+ } else {
2785+ validateFunction(callback, 'cb');
2786+ }
27822787 options = getOptions(options);
27832788 p = toPathIfFileURL(p);
27842789
0 commit comments