UNPKG

@stringsync/vexml

Version:

MusicXML to Vexflow

32 lines (31 loc) 965 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MonitoredFormatter = void 0; const config_1 = require("../config"); const debug_1 = require("../debug"); /** * A formatter that tracks how long its child formatter takes to format a document. */ class MonitoredFormatter { formatter; config; log; constructor(formatter, logger, opts) { this.formatter = formatter; this.config = { ...config_1.DEFAULT_CONFIG, ...opts?.config }; this.log = logger; } format(document) { const stopwatch = debug_1.Stopwatch.start(); const formatted = this.formatter.format(document); const lap = stopwatch.lap(); if (lap < 1) { this.log.info(`formatted score in <1ms`); } else { this.log.info(`formatted score in ${Math.round(lap)}ms`); } return formatted; } } exports.MonitoredFormatter = MonitoredFormatter;