diff --git a/lib/fs.js b/lib/fs.js index 22688f631daf88..2225661942ad32 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -3242,6 +3242,18 @@ defineLazyProperties( ['Dir', 'opendir', 'opendirSync'], ); +defineLazyProperties( + fs, + 'internal/fs/utils', + ['BigIntStats', 'StatFs'], +); + +defineLazyProperties( + fs, + 'internal/fs/watchers', + ['FSWatcher', 'StatWatcher'], +); + ObjectDefineProperties(fs, { F_OK: { __proto__: null, enumerable: true, value: F_OK || 0 }, R_OK: { __proto__: null, enumerable: true, value: R_OK || 0 }, diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js index e3e1c25f95ea5a..3b83ea4299d73a 100644 --- a/lib/internal/fs/utils.js +++ b/lib/internal/fs/utils.js @@ -1000,6 +1000,7 @@ module.exports = { getStatsFromBinding, stringToFlags, stringToSymlinkType, + StatFs, Stats, toUnixTimestamp, validateBufferArray, diff --git a/test/parallel/test-fs-classes-exist.mjs b/test/parallel/test-fs-classes-exist.mjs new file mode 100644 index 00000000000000..01a457646e013e --- /dev/null +++ b/test/parallel/test-fs-classes-exist.mjs @@ -0,0 +1,25 @@ +import '../common/index.mjs'; +import { equal } from 'node:assert/strict'; +import { + BigIntStats, + Dir, + Dirent, + FSWatcher, + StatWatcher, + ReadStream, + Stats, + StatFs, + WriteStream, +} from 'node:fs'; + +// Test classes listed in https://nodejs.org/api/fs.html#common-objects + +equal(typeof BigIntStats, 'function'); +equal(typeof Dir, 'function'); +equal(typeof Dirent, 'function'); +equal(typeof FSWatcher, 'function'); +equal(typeof StatWatcher, 'function'); +equal(typeof ReadStream, 'function'); +equal(typeof Stats, 'function'); +equal(typeof StatFs, 'function'); +equal(typeof WriteStream, 'function');