1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
18 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
19 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
20 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
21 | return c > 3 && r && Object.defineProperty(target, key, r), r;
|
22 | };
|
23 | var __metadata = (this && this.__metadata) || function (k, v) {
|
24 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
25 | };
|
26 | Object.defineProperty(exports, "__esModule", { value: true });
|
27 | exports.FrontendStopwatch = void 0;
|
28 | const inversify_1 = require("inversify");
|
29 | const common_1 = require("../../common");
|
30 | let FrontendStopwatch = class FrontendStopwatch extends common_1.Stopwatch {
|
31 | constructor() {
|
32 | super({
|
33 | owner: 'frontend',
|
34 | now: () => performance.now(),
|
35 | });
|
36 | }
|
37 | start(name, options) {
|
38 | const startMarker = `${name}-start`;
|
39 | const endMarker = `${name}-end`;
|
40 | performance.clearMeasures(name);
|
41 | performance.clearMarks(startMarker);
|
42 | performance.clearMarks(endMarker);
|
43 | performance.mark(startMarker);
|
44 | return this.createMeasurement(name, () => {
|
45 | var _a, _b;
|
46 | performance.mark(endMarker);
|
47 | let duration;
|
48 | let startTime;
|
49 | try {
|
50 | performance.measure(name, startMarker, endMarker);
|
51 | const entries = performance.getEntriesByName(name);
|
52 |
|
53 |
|
54 | duration = (_a = entries[0].duration) !== null && _a !== void 0 ? _a : Number.NaN;
|
55 | startTime = (_b = entries[0].startTime) !== null && _b !== void 0 ? _b : Number.NaN;
|
56 | }
|
57 | catch (e) {
|
58 | console.warn(e);
|
59 | duration = Number.NaN;
|
60 | startTime = Number.NaN;
|
61 | }
|
62 | performance.clearMeasures(name);
|
63 | performance.clearMarks(startMarker);
|
64 | performance.clearMarks(endMarker);
|
65 | return { startTime, duration };
|
66 | }, options);
|
67 | }
|
68 | };
|
69 | FrontendStopwatch = __decorate([
|
70 | (0, inversify_1.injectable)(),
|
71 | __metadata("design:paramtypes", [])
|
72 | ], FrontendStopwatch);
|
73 | exports.FrontendStopwatch = FrontendStopwatch;
|
74 | ;
|
75 |
|
\ | No newline at end of file |