From 7a52ddeba2a68388b544f529d2d92104420f77b0 Mon Sep 17 00:00:00 2001 From: Shipwreckt Date: Fri, 31 Oct 2025 20:02:14 +0000 Subject: Changed from static to 11ty! --- .../eleventy/src/Benchmark/BenchmarkManager.js | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 node_modules/@11ty/eleventy/src/Benchmark/BenchmarkManager.js (limited to 'node_modules/@11ty/eleventy/src/Benchmark/BenchmarkManager.js') diff --git a/node_modules/@11ty/eleventy/src/Benchmark/BenchmarkManager.js b/node_modules/@11ty/eleventy/src/Benchmark/BenchmarkManager.js new file mode 100644 index 0000000..d7a8f61 --- /dev/null +++ b/node_modules/@11ty/eleventy/src/Benchmark/BenchmarkManager.js @@ -0,0 +1,73 @@ +import { performance } from "node:perf_hooks"; + +import BenchmarkGroup from "./BenchmarkGroup.js"; + +// TODO this should not be a singleton, it belongs in the config or somewhere on the Eleventy instance. + +class BenchmarkManager { + constructor() { + this.benchmarkGroups = {}; + this.isVerbose = true; + this.start = this.getNewTimestamp(); + } + + reset() { + this.start = this.getNewTimestamp(); + + for (var j in this.benchmarkGroups) { + this.benchmarkGroups[j].reset(); + } + } + + getNewTimestamp() { + if (performance) { + return performance.now(); + } + return new Date().getTime(); + } + + setVerboseOutput(isVerbose) { + this.isVerbose = !!isVerbose; + } + + hasBenchmarkGroup(name) { + return name in this.benchmarkGroups; + } + + getBenchmarkGroup(name) { + if (!this.benchmarkGroups[name]) { + this.benchmarkGroups[name] = new BenchmarkGroup(); + + // Special behavior for aggregate benchmarks + // so they don’t console.log every time + if (name === "Aggregate") { + this.benchmarkGroups[name].setIsVerbose(false); + } else { + this.benchmarkGroups[name].setIsVerbose(this.isVerbose); + } + } + + return this.benchmarkGroups[name]; + } + + getAll() { + return this.benchmarkGroups; + } + + get(name) { + if (name) { + return this.getBenchmarkGroup(name); + } + + return this.getAll(); + } + + finish() { + let totalTimeSpentBenchmarking = this.getNewTimestamp() - this.start; + for (var j in this.benchmarkGroups) { + this.benchmarkGroups[j].finish(j, totalTimeSpentBenchmarking); + } + } +} + +export default BenchmarkManager; -- cgit v1.2.3