diff --git a/lib/internal/fs/promises.js b/lib/internal/fs/promises.js index 7317f29bc5393d4..36ff5b8f516514d 100644 --- a/lib/internal/fs/promises.js +++ b/lib/internal/fs/promises.js @@ -43,7 +43,7 @@ const { aggregateTwoErrors, } = require('internal/errors'); const { isArrayBufferView } = require('internal/util/types'); -const { rimrafPromises } = require('internal/fs/rimraf'); + const { constants: { kIoMaxLength, @@ -92,6 +92,7 @@ const { kEmptyObject, lazyDOMException, promisify, + getLazy, } = require('internal/util'); const { EventEmitterMixin } = require('internal/event_target'); const { StringDecoder } = require('string_decoder'); @@ -135,6 +136,8 @@ function lazyFsStreams() { return fsStreams ??= require('internal/fs/streams'); } +const lazyRimRaf = getLazy(() => require('internal/fs/rimraf').rimrafPromises); + class FileHandle extends EventEmitterMixin(JSTransferable) { /** * @param {InternalFSBinding.FileHandle | undefined} filehandle @@ -749,7 +752,7 @@ async function ftruncate(handle, len = 0) { async function rm(path, options) { path = pathModule.toNamespacedPath(getValidatedPath(path)); options = await validateRmOptionsPromise(path, options, false); - return rimrafPromises(path, options); + return lazyRimRaf()(path, options); } async function rmdir(path, options) { @@ -760,7 +763,7 @@ async function rmdir(path, options) { emitRecursiveRmdirWarning(); const stats = await stat(path); if (stats.isDirectory()) { - return rimrafPromises(path, options); + return lazyRimRaf()(path, options); } }