@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
47 lines (46 loc) • 1.11 kB
JavaScript
;
var __importDefault = this && this.__importDefault || function (mod) {
return mod && mod.__esModule ? mod : {
"default": mod
};
};
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.measureTime = void 0;
const crypto_1 = __importDefault(require("crypto"));
const measureTime = (logLevel, label, meta) => {
const shortId = crypto_1.default.randomUUID().slice(0, 8);
const start = performance.now();
let logMeta = {
...meta
};
const addMeta = meta => {
logMeta = {
...logMeta,
...meta
};
};
console.log(logLevel, `[${shortId}] [START] ${label} `, {
shortId,
...logMeta
});
let disposed = false;
const done = () => {
if (disposed) return;
disposed = true;
const durationMs = Math.round(performance.now() - start);
const durationS = `${durationMs / 1000}s`;
console.log(logLevel, `[${shortId}] [END] ${label} | ${durationS}`, {
shortId,
durationS,
...logMeta
});
};
return {
done,
[Symbol.dispose]: done,
addMeta
};
};
exports.measureTime = measureTime;