{"version":3,"file":"timer.mjs","sources":["../../../../src/node/core/timer.ts"],"sourcesContent":["import { performance } from 'perf_hooks';\n\nexport interface TimeMeasurer {\n  start: (name: string) => void;\n  end: (name: string) => number;\n  getTimings: () => Record<string, number>;\n}\n\nexport function getTimer(): TimeMeasurer {\n  const timings: Record<string, number> = {};\n  const startTimes: Record<string, number> = {};\n\n  function start(name: string): void {\n    if (typeof startTimes[name] !== 'undefined') {\n      throw new Error(`Timer \"${name}\" already started, cannot overwrite`);\n    }\n\n    startTimes[name] = performance.now();\n  }\n\n  function end(name: string): number {\n    if (typeof startTimes[name] === 'undefined') {\n      throw new Error(`Timer \"${name}\" never started, cannot end`);\n    }\n\n    timings[name] = performance.now() - startTimes[name];\n    return timings[name];\n  }\n\n  return { start, end, getTimings: () => timings };\n}\n\nexport const prettyTime = (timeInMs: number): string => {\n  return `${Math.ceil(timeInMs)}ms`;\n};\n"],"names":["getTimer","timings","startTimes","start","name","Error","performance","now","end","getTimings","prettyTime","timeInMs","Math","ceil"],"mappings":";;AAQO,SAASA,QAAAA,GAAAA;AACd,IAAA,MAAMC,UAAkC,EAAC;AACzC,IAAA,MAAMC,aAAqC,EAAC;AAE5C,IAAA,SAASC,MAAMC,IAAY,EAAA;AACzB,QAAA,IAAI,OAAOF,UAAU,CAACE,IAAAA,CAAK,KAAK,WAAA,EAAa;AAC3C,YAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,OAAO,EAAED,IAAAA,CAAK,mCAAmC,CAAC,CAAA;AACrE,QAAA;AAEAF,QAAAA,UAAU,CAACE,IAAAA,CAAK,GAAGE,WAAAA,CAAYC,GAAG,EAAA;AACpC,IAAA;AAEA,IAAA,SAASC,IAAIJ,IAAY,EAAA;AACvB,QAAA,IAAI,OAAOF,UAAU,CAACE,IAAAA,CAAK,KAAK,WAAA,EAAa;AAC3C,YAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,OAAO,EAAED,IAAAA,CAAK,2BAA2B,CAAC,CAAA;AAC7D,QAAA;QAEAH,OAAO,CAACG,KAAK,GAAGE,WAAAA,CAAYC,GAAG,EAAA,GAAKL,UAAU,CAACE,IAAAA,CAAK;QACpD,OAAOH,OAAO,CAACG,IAAAA,CAAK;AACtB,IAAA;IAEA,OAAO;AAAED,QAAAA,KAAAA;AAAOK,QAAAA,GAAAA;AAAKC,QAAAA,UAAAA,EAAY,IAAMR;AAAQ,KAAA;AACjD;AAEO,MAAMS,aAAa,CAACC,QAAAA,GAAAA;AACzB,IAAA,OAAO,GAAGC,IAAAA,CAAKC,IAAI,CAACF,QAAAA,CAAAA,CAAU,EAAE,CAAC;AACnC;;;;"}