@controlplane/cli
Version:
Control Plane Corporation CLI
51 lines • 1.46 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.sleep = exports.toNanos = exports.unixTime = exports.unixNow = exports.debounce = void 0;
const parse_duration_1 = require("parse-duration");
function debounce(func, wait) {
let timeout = null;
return function executedFunction(...args) {
const later = () => {
timeout = null;
func(...args);
};
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(later, wait);
};
}
exports.debounce = debounce;
function unixNow() {
return unixTime(new Date());
}
exports.unixNow = unixNow;
function unixTime(d) {
return Math.round(d.getTime() / 1000);
}
exports.unixTime = unixTime;
function toNanos(nowMillis, since, ts) {
if (!since && !ts) {
return undefined;
}
if (ts) {
const ms = Date.parse(ts);
if (Number.isNaN(ms)) {
throw new Error(`Cannot parse ${ts} into a valid date`);
}
return '' + ms + '000000';
}
const ms = (0, parse_duration_1.default)(since);
if (ms === null) {
throw new Error(`Cannot parse ${since} into a duration`);
}
return '' + (nowMillis - ms) + '000000';
}
exports.toNanos = toNanos;
function sleep(millis, sentinel) {
return new Promise((resolve) => {
setTimeout(resolve, millis, sentinel);
});
}
exports.sleep = sleep;
//# sourceMappingURL=time.js.map
;