Files
discord-decomp/sources/by-id/module-07469-MetricsAggregator.js
T
2026-07-28 01:06:53 +03:00

340 lines
17 KiB
JavaScript

/* Metro module 7469; source: unknown; dependencies: [57, 6, 7, 7466, 7383, 7470, 7471, 7374, 7472] */
import * as ClassCallCheckModule from './module-00006-ClassCallCheck.js'; /* Metro dependency 6 */
import * as CreateClassModule from './module-00007-CreateClass.js'; /* Metro dependency 7 */
import * as Module00057Module from './module-00057.js'; /* Metro dependency 57 */
import * as Module07466Module from './module-07466.js'; /* Metro dependency 7466 */
import * as Module07470Module from './module-07470.js'; /* Metro dependency 7470 */
function _fun60232(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#60232, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7647:6, offset: 0x016fec2f, size: 117 bytes, params: 8, frame: 17
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
exports.MetricsAggregator = _fun60233();
function _fun60233() { // fn#60233, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7647:119, offset: 0x016feca4, size: 147 bytes, params: 1, frame: 15
return CreateClassModule(MetricsAggregator, [{key: 'add', value: value_60236}, {key: 'flush', value: function() {
this._forceFlush = true;
this._flush();
}}, {key: 'close', value: function() {
this._forceFlush = true;
global.clearInterval(this._interval);
this._flush();
}}, {key: '_flush', value: value_60239}, {key: '_captureMetrics', value: value_60240}]);
function MetricsAggregator(a0) { // fn#60234, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7647:153, offset: 0x016fed37, size: 248 bytes, params: 2, frame: 18
env1_3(this, MetricsAggregator);
this._client = a0;
const Map = global.Map;
const value3 = Object.create(Map.prototype, {constructor: {value: Map}});
const map = new Map();
this._buckets = map instanceof Object ? map : value3;
this._bucketsTotalWeight = 0;
const setInterval = global.setInterval;
const DEFAULT_FLUSH_INTERVAL = (Module07466Module).DEFAULT_FLUSH_INTERVAL;
this._interval = setInterval(_fun60235, DEFAULT_FLUSH_INTERVAL);
if (this._interval.unref) {
this._interval.unref();
}
const Math = global.Math;
const floor = Math.floor;
const Math2 = global.Math;
this._flushShift = Reflect.apply(floor, Math, [Math2.random() * DEFAULT_FLUSH_INTERVAL / 1000]);
this._forceFlush = false;
function _fun60235() { // fn#60235, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7647:312, offset: 0x00dbfa8a, size: 19 bytes, params: 1, frame: 9
return env0_0._flush();
}
}
function value_60236(a0, a1, a2) { // fn#60236, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7647:538, offset: 0x016fee2f, size: 604 bytes, params: 4, frame: 31
var r3;
var object;
var property;
var value16;
var property2;
const value = a2;
const value2 = 'none';
const r15 = arguments.length > 3 ? arguments[3] === undefined ? value2 : arguments[3] : value2;
const r12 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
const r4 = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : (require(7383) /* metro dependency 7383 */).timestampInSeconds();
const Math = global.Math;
const value8 = Math.floor(r4);
const value10 = (Module07470Module).sanitizeMetricKey(a1);
const value11 = (Module07470Module).sanitizeTags(r12);
const value12 = (Module07470Module).sanitizeUnit(r15);
const bucketKey = (Module07470Module).getBucketKey(a0, value10, value12, value11);
const value14 = this._buckets.get(bucketKey);
const value15 = 0;
const weight = value14 ? a0 !== (require(7466) /* metro dependency 7466 */).SET_METRIC_TYPE ? value15 : value14.metric.weight : value15;
if (value14) {
value14.metric.add(value);
if (value14.timestamp < value8) {
value14.timestamp = value8;
r3 = value14;
} else {
r3 = value14;
}
} else {
object = {};
property = (require(7471) /* metro dependency 7471 */).METRIC_MAP[a0];
value16 = Object.create(property.prototype, {constructor: {value: property}});
property2 = new property(value);
object.metric = property2 instanceof Object ? property2 : value16;
object.timestamp = value8;
object.metricType = a0;
object.name = value10;
object.unit = value12;
object.tags = value11;
this._buckets.set(bucketKey, object);
r3 = object;
}
(require(7374) /* metro dependency 7374 */).updateMetricSummaryOnActiveSpan(a0, value10,
typeof value !== 'string' ? value : r3.metric.weight - weight, value12, r12, bucketKey);
let _bucketsTotalWeight = this._bucketsTotalWeight;
this._bucketsTotalWeight = _bucketsTotalWeight + r3.metric.weight;
_bucketsTotalWeight = this._bucketsTotalWeight;
const MAX_WEIGHT = (require(7466) /* metro dependency 7466 */).MAX_WEIGHT;
if (_bucketsTotalWeight >= MAX_WEIGHT) {
this.flush();
}
}
function value_60239() { // fn#60239, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7647:1535, offset: 0x016ff0d0, size: 392 bytes, params: 1, frame: 25
var r4;
var _forceFlush;
var Math;
var floor;
var value;
var moduleValue;
var timestampInSeconds;
var value2;
var DEFAULT_FLUSH_INTERVAL;
var value3;
var _flushShift;
var value4;
var Map;
var prototype;
var value5;
var map;
var value6;
var _buckets;
var iterator;
var iterator2;
var item;
var item2;
var binding;
var value7;
var property;
var property2;
var timestamp;
var value8;
var set;
var _bucketsTotalWeight;
var metric;
var weight;
var value9;
var error;
var iterator3;
var item3;
var value10;
var property3;
var _captureMetrics;
exceptionSkip29: while (true) {
exceptionLanding29: while (true) {
exceptionSkip20: while (true) {
exceptionLanding20: while (true) {
_forceFlush = this._forceFlush;
if (_forceFlush) {
this._forceFlush = false;
this._bucketsTotalWeight = 0;
_captureMetrics = this._captureMetrics;
_buckets = this._buckets;
Reflect.apply(_captureMetrics, this, [_buckets]);
_buckets = this._buckets;
_buckets.clear();
return undefined;
}
Math = global.Math;
floor = Math.floor;
value = environment.__proto__;
moduleValue = require(7383) /* metro dependency 7383 */;
timestampInSeconds = moduleValue.timestampInSeconds;
value2 = Reflect.apply(floor, Math, [Reflect.apply(timestampInSeconds, moduleValue, [])]);
DEFAULT_FLUSH_INTERVAL = (require(7466) /* metro dependency 7466 */).DEFAULT_FLUSH_INTERVAL;
value3 = value2 - DEFAULT_FLUSH_INTERVAL / 1000;
_flushShift = this._flushShift;
value4 = value3 - _flushShift;
Map = global.Map;
prototype = Map.prototype;
value5 = Object.create(prototype, {constructor: {value: Map}});
map = new Map();
value6 = map instanceof Object ? map : value5;
_buckets = this._buckets;
iterator = _buckets[Symbol.iterator]();
iterator2 = iterator.next;
r4 = iterator;
while (true) {
item2 = Reflect.apply(iterator2, r4, []);
item = item2.value;
item2 = item2.done ? undefined : r4;
if (item2 === undefined) {
break;
}
try {
binding = env1_2;
} catch (error) {
break exceptionLanding20;
}
try {
value7 = binding(item, 2);
} catch (error) {
break exceptionLanding20;
}
try {
property = value7[0];
} catch (error) {
break exceptionLanding20;
}
try {
property2 = value7[1];
} catch (error) {
break exceptionLanding20;
}
try {
timestamp = property2.timestamp;
} catch (error) {
break exceptionLanding20;
}
try {
value8 = timestamp <= value4;
} catch (error) {
break exceptionLanding20;
}
if (!value8) {
r4 = item2;
continue;
}
try {
set = value6.set;
} catch (error) {
break exceptionLanding20;
}
try {
Reflect.apply(set, value6, [property, property2]);
} catch (error) {
break exceptionLanding20;
}
try {
_bucketsTotalWeight = this._bucketsTotalWeight;
} catch (error) {
break exceptionLanding20;
}
try {
metric = property2.metric;
} catch (error) {
break exceptionLanding20;
}
try {
weight = metric.weight;
} catch (error) {
break exceptionLanding20;
}
try {
value9 = _bucketsTotalWeight - weight;
} catch (error) {
break exceptionLanding20;
}
try {
this._bucketsTotalWeight = value9;
} catch (error) {
break exceptionLanding20;
}
r4 = item2;
}
iterator = value6[Symbol.iterator]();
iterator3 = iterator.next;
for (r4 = iterator; true; r4 = item3) {
item3 = Reflect.apply(iterator3, r4, []);
item = item3.value;
item3 = item3.done ? undefined : r4;
if (item3 === undefined) {
break;
}
try {
binding = env1_2;
} catch (error) {
break exceptionLanding29;
}
try {
value10 = binding(item, 1);
} catch (error) {
break exceptionLanding29;
}
try {
property = value10[0];
} catch (error) {
break exceptionLanding29;
}
try {
_buckets = this._buckets;
} catch (error) {
break exceptionLanding29;
}
try {
property3 = _buckets.delete;
} catch (error) {
break exceptionLanding29;
}
try {
Reflect.apply(property3, _buckets, [property]);
} catch (error) {
break exceptionLanding29;
}
}
_captureMetrics = this._captureMetrics;
Reflect.apply(_captureMetrics, this, [value6]);
return undefined;
break exceptionSkip20;
}
try {
item2.return();
} catch {
}
throw error;
break exceptionSkip20;
}
break exceptionSkip29;
}
try {
item3.return();
} catch {
}
throw error;
break exceptionSkip29;
}
}
function value_60240(a0) { // fn#60240, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7647:2036, offset: 0x016ff258, size: 99 bytes, params: 2, frame: 13
var environment;
var value;
var value2;
var moduleValue;
if (a0.size > 0) {
value = global.Array.from(a0);
value = value.map(_fun60241);
value2 = environment.__proto__;
moduleValue = require(7472) /* metro dependency 7472 */;
moduleValue.captureAggregateMetrics(this._client, value);
}
function _fun60241(a0) { // fn#60241, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7647:2102, offset: 0x016ff2bb, size: 30 bytes, params: 2, frame: 13
const value = environment.__proto__.__proto__;
return env2_2(a0, 2)[1];
}
}
}
}
global.__d(_fun60232, 7469, [57, 6, 7, 7466, 7383, 7470, 7471, 7374,
7472]) /* metro module 7469, dependencies: [57, 6, 7, 7466, 7383, 7470, 7471, 7374, 7472] */;