* 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)
| 152 | * @returns {Stats} |
| 153 | */ |
| 154 | function 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. |
no test coverage detected
searching dependent graphs…