UNPKG

@catladder/cli

Version:

Panter cli tool for cloud CI/CD and DevOps

47 lines (46 loc) 1.11 kB
"use strict"; 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;