UNPKG

ipfs-http-client

Version:
40 lines 954 B
import errCode from 'err-code'; export function parseMtime(input) { if (input == null) { return undefined; } let mtime; if (input.secs != null) { mtime = { secs: input.secs, nsecs: input.nsecs }; } if (input.Seconds != null) { mtime = { secs: input.Seconds, nsecs: input.FractionalNanoseconds }; } if (Array.isArray(input)) { mtime = { secs: input[0], nsecs: input[1] }; } if (input instanceof Date) { const ms = input.getTime(); const secs = Math.floor(ms / 1000); mtime = { secs: secs, nsecs: (ms - secs * 1000) * 1000 }; } if (!Object.prototype.hasOwnProperty.call(mtime, 'secs')) { return undefined; } if (mtime != null && mtime.nsecs != null && (mtime.nsecs < 0 || mtime.nsecs > 999999999)) { throw errCode(new Error('mtime-nsecs must be within the range [0,999999999]'), 'ERR_INVALID_MTIME_NSECS'); } return mtime; }