source: frontend/node_modules/fork-ts-checker-webpack-plugin/lib/profile/Performance.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 2.0 KB
Line 
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const perf_hooks_1 = require("perf_hooks");
4function createPerformance() {
5 let enabled = false;
6 let timeOrigin;
7 let marks;
8 let measurements;
9 function enable() {
10 enabled = true;
11 marks = new Map();
12 measurements = new Map();
13 timeOrigin = perf_hooks_1.performance.now();
14 }
15 function disable() {
16 enabled = false;
17 }
18 function mark(name) {
19 if (enabled) {
20 marks.set(name, perf_hooks_1.performance.now());
21 }
22 }
23 function measure(name, startMark, endMark) {
24 if (enabled) {
25 const start = (startMark && marks.get(startMark)) || timeOrigin;
26 const end = (endMark && marks.get(endMark)) || perf_hooks_1.performance.now();
27 measurements.set(name, (measurements.get(name) || 0) + (end - start));
28 }
29 }
30 function markStart(name) {
31 if (enabled) {
32 mark(`${name} start`);
33 }
34 }
35 function markEnd(name) {
36 if (enabled) {
37 mark(`${name} end`);
38 measure(name, `${name} start`, `${name} end`);
39 }
40 }
41 function formatName(name, width = 0) {
42 return `${name}:`.padEnd(width);
43 }
44 function formatDuration(duration, width = 0) {
45 return `${(duration / 1000).toFixed(2)} s`.padStart(width);
46 }
47 function print() {
48 if (enabled) {
49 let nameWidth = 0;
50 let durationWidth = 0;
51 measurements.forEach((duration, name) => {
52 nameWidth = Math.max(nameWidth, formatName(name).length);
53 durationWidth = Math.max(durationWidth, formatDuration(duration).length);
54 });
55 measurements.forEach((duration, name) => {
56 console.log(`${formatName(name, nameWidth)} ${formatDuration(duration, durationWidth)}`);
57 });
58 }
59 }
60 return { enable, disable, mark, markStart, markEnd, measure, print };
61}
62exports.createPerformance = createPerformance;
Note: See TracBrowser for help on using the repository browser.