MCPcopy Index your code
hub / github.com/nodejs/node / createDirectoryStats

Function createDirectoryStats

lib/internal/vfs/stats.js:154–197  ·  view source on GitHub ↗

* Creates a Stats object for a virtual directory. * @param {object} [options] Optional stat properties * @param {number} [options.mode] Directory mode (default: 0o755) * @param {number} [options.uid] User ID (default: process.getuid() or 0) * @param {number} [options.gid] Group ID (default: proc

(options = kEmptyObject)

Source from the content-addressed store, hash-verified

152 * @returns {Stats}
153 */
154function createDirectoryStats(options = kEmptyObject) {
155 const now = DateNow();
156 const mode = (options.mode ?? 0o755) | S_IFDIR;
157 const uid = options.uid ?? (process.getuid?.() ?? 0);
158 const gid = options.gid ?? (process.getgid?.() ?? 0);
159 const atimeMs = options.atimeMs ?? now;
160 const mtimeMs = options.mtimeMs ?? now;
161 const ctimeMs = options.ctimeMs ?? now;
162 const birthtimeMs = options.birthtimeMs ?? now;
163 const ino = inoCounter++;
164
165 const atime = msToTimeSpec(atimeMs);
166 const mtime = msToTimeSpec(mtimeMs);
167 const ctime = msToTimeSpec(ctimeMs);
168 const birthtime = msToTimeSpec(birthtimeMs);
169
170 if (options.bigint) {
171 return fillBigIntStatsArray(
172 kVfsDev, mode, 1, uid, gid, 0, kDefaultBlockSize, ino,
173 kDefaultBlockSize, 8, atime, mtime, ctime, birthtime,
174 );
175 }
176
177 statsArray[0] = kVfsDev; // dev
178 statsArray[1] = mode; // mode
179 statsArray[2] = 1; // nlink
180 statsArray[3] = uid; // uid
181 statsArray[4] = gid; // gid
182 statsArray[5] = 0; // rdev
183 statsArray[6] = kDefaultBlockSize; // blksize
184 statsArray[7] = ino; // ino
185 statsArray[8] = kDefaultBlockSize; // size (directory size)
186 statsArray[9] = 8; // blocks
187 statsArray[10] = atime.sec; // atime_sec
188 statsArray[11] = atime.nsec; // atime_nsec
189 statsArray[12] = mtime.sec; // mtime_sec
190 statsArray[13] = mtime.nsec; // mtime_nsec
191 statsArray[14] = ctime.sec; // ctime_sec
192 statsArray[15] = ctime.nsec; // ctime_nsec
193 statsArray[16] = birthtime.sec; // birthtime_sec
194 statsArray[17] = birthtime.nsec; // birthtime_nsec
195
196 return getStatsFromBinding(statsArray);
197}
198
199/**
200 * Creates a Stats object for a virtual symbolic link.

Callers 2

#createStatsMethod · 0.85

Calls 3

msToTimeSpecFunction · 0.85
fillBigIntStatsArrayFunction · 0.85
getStatsFromBindingFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…