Buckets:
| const nullTime = () => '' | |
| const epochTime = () => `,"time":${Date.now()}` | |
| const unixTime = () => `,"time":${Math.round(Date.now() / 1000.0)}` | |
| const isoTime = () => `,"time":"${new Date(Date.now()).toISOString()}"` // using Date.now() for testability | |
| const NS_PER_MS = 1_000_000n | |
| const NS_PER_SEC = 1_000_000_000n | |
| const startWallTimeNs = BigInt(Date.now()) * NS_PER_MS | |
| const startHrTime = process.hrtime.bigint() | |
| const isoTimeNano = () => { | |
| const elapsedNs = process.hrtime.bigint() - startHrTime | |
| const currentTimeNs = startWallTimeNs + elapsedNs | |
| const secondsSinceEpoch = currentTimeNs / NS_PER_SEC | |
| const nanosWithinSecond = currentTimeNs % NS_PER_SEC | |
| const msSinceEpoch = Number(secondsSinceEpoch * 1000n + nanosWithinSecond / 1_000_000n) | |
| const date = new Date(msSinceEpoch) | |
| const year = date.getUTCFullYear() | |
| const month = (date.getUTCMonth() + 1).toString().padStart(2, '0') | |
| const day = date.getUTCDate().toString().padStart(2, '0') | |
| const hours = date.getUTCHours().toString().padStart(2, '0') | |
| const minutes = date.getUTCMinutes().toString().padStart(2, '0') | |
| const seconds = date.getUTCSeconds().toString().padStart(2, '0') | |
| return `,"time":"${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${nanosWithinSecond | |
| .toString() | |
| .padStart(9, '0')}Z"` | |
| } | |
| module.exports = { nullTime, epochTime, unixTime, isoTime, isoTimeNano } | |
Xet Storage Details
- Size:
- 1.39 kB
- Xet hash:
- b65362aa618801fdbb7bdeefcc94558b8b9d46b942aab8c5216af38c8e57b32e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.