normalize-stats
Version:
Create BigIntStats from fs.Stats for compatibility on earlier versions of Node.js
21 lines (20 loc) • 871 B
JavaScript
const kNsPerMsBigInt = typeof BigInt === 'undefined' ? 10 ** 6 : BigInt(10 ** 6);
export default function normalizeStats(stats) {
if (typeof stats.dev === 'bigint') {
const bigStats = stats;
if (!bigStats.atimeNs) {
bigStats.atimeNs = bigStats.atimeMs * kNsPerMsBigInt;
bigStats.mtimeNs = bigStats.mtimeMs * kNsPerMsBigInt;
bigStats.ctimeNs = bigStats.ctimeMs * kNsPerMsBigInt;
bigStats.birthtimeNs = bigStats.birthtimeMs * kNsPerMsBigInt;
}
} else {
if (!stats.atimeMs) {
stats.atimeMs = stats.atime.valueOf() * 1000;
stats.mtimeMs = stats.mtime.valueOf() * 1000;
stats.ctimeMs = stats.ctime.valueOf() * 1000;
stats.birthtimeMs = stats.birthtime ? stats.birthtime.valueOf() * 1000 : stats.mtimeMs;
}
}
return stats;
}