Adds the node:vfs builtin module with VirtualFileSystem and provider classes. No integration with fs, modules, or SEA. Assisted-by: Claude-Opus4.7 Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: https://github.com/nodejs/node/pull/63115 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Paolo Insogna <paolo@cowtech.it> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
27 lines
754 B
JavaScript
27 lines
754 B
JavaScript
// Flags: --experimental-vfs
|
|
'use strict';
|
|
|
|
// utimes / lutimes accept Date instances, numeric seconds, strings,
|
|
// and other values (which fall through to a no-op time value).
|
|
|
|
require('../common');
|
|
const vfs = require('node:vfs');
|
|
|
|
const myVfs = vfs.create();
|
|
myVfs.writeFileSync('/u.txt', 'x');
|
|
myVfs.symlinkSync('/u.txt', '/lk');
|
|
|
|
// Numeric seconds branch
|
|
myVfs.utimesSync('/u.txt', 1000, 2000);
|
|
|
|
// Date object branch
|
|
myVfs.utimesSync('/u.txt', new Date(3000000), new Date(4000000));
|
|
|
|
// String time → DateNow() fallback
|
|
myVfs.utimesSync('/u.txt', 'now', 'now');
|
|
|
|
// null/undefined → fallthrough (returns the value as-is)
|
|
myVfs.utimesSync('/u.txt', null, undefined);
|
|
|
|
// lutimes for symlinks
|
|
myVfs.lutimesSync('/lk', new Date(0), new Date(0));
|