1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var utilities_1 = require("./utilities");
|
5 | var Performance = (function () {
|
6 | function Performance() {
|
7 | this.isUsingMockUserTiming = false;
|
8 | }
|
9 | Performance.prototype.mock = function (timing) {
|
10 | if (timing === void 0) { timing = {}; }
|
11 | if (this.isUsingMockUserTiming) {
|
12 | throw new Error('You tried to mock window.performance.timing when it was already mocked.');
|
13 | }
|
14 | this.originalUserTiming = window.performance.timing;
|
15 | var mockTiming = tslib_1.__assign({ navigationStart: 0, unloadEventStart: 0, unloadEventEnd: 0, redirectStart: 0, redirectEnd: 0, fetchStart: 0, domainLookupStart: 0, domainLookupEnd: 0, connectStart: 0, connectEnd: 0, secureConnectionStart: 0, requestStart: 0, responseStart: 0, responseEnd: 0, domLoading: 0, domInteractive: 0, domContentLoadedEventStart: 0, domContentLoadedEventEnd: 0, domComplete: 0, loadEventStart: 0, loadEventEnd: 0 }, timing);
|
16 | utilities_1.set(window.performance, 'timing', mockTiming);
|
17 | this.isUsingMockUserTiming = true;
|
18 | };
|
19 | Performance.prototype.restore = function () {
|
20 | if (!this.isUsingMockUserTiming) {
|
21 | throw new Error('You tried to restore window.performance.timing when it was already restored.');
|
22 | }
|
23 | utilities_1.set(window.performance, 'timing', this.originalUserTiming);
|
24 | this.isUsingMockUserTiming = false;
|
25 | };
|
26 | Performance.prototype.isMocked = function () {
|
27 | return this.isUsingMockUserTiming;
|
28 | };
|
29 | return Performance;
|
30 | }());
|
31 | exports.default = Performance;
|