matrix-react-sdk
Version:
SDK for matrix.org using React
44 lines (40 loc) • 4.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.decorateStartSendingTime = decorateStartSendingTime;
exports.sendRoundTripMetric = sendRoundTripMetric;
/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
/**
* Decorates the given event content object with the "send start time". The
* object will be modified in-place.
* @param {object} content The event content.
*/
function decorateStartSendingTime(content) {
content["io.element.performance_metrics"] = {
sendStartTs: Date.now()
};
}
/**
* Called when an event decorated with `decorateStartSendingTime()` has been sent
* by the server (the client now knows the event ID).
* @param {MatrixClient} client The client to send as.
* @param {string} inRoomId The room ID where the original event was sent.
* @param {string} forEventId The event ID for the decorated event.
*/
function sendRoundTripMetric(client, inRoomId, forEventId) {
// noinspection JSIgnoredPromiseFromCall
client.sendEvent(inRoomId, "io.element.performance_metric", {
"io.element.performance_metrics": {
forEventId: forEventId,
responseTs: Date.now(),
kind: "send_time"
}
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWNvcmF0ZVN0YXJ0U2VuZGluZ1RpbWUiLCJjb250ZW50Iiwic2VuZFN0YXJ0VHMiLCJEYXRlIiwibm93Iiwic2VuZFJvdW5kVHJpcE1ldHJpYyIsImNsaWVudCIsImluUm9vbUlkIiwiZm9yRXZlbnRJZCIsInNlbmRFdmVudCIsInJlc3BvbnNlVHMiLCJraW5kIl0sInNvdXJjZXMiOlsiLi4vc3JjL3NlbmRUaW1lUGVyZm9ybWFuY2VNZXRyaWNzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IElDb250ZW50LCBNYXRyaXhDbGllbnQgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbWF0cml4XCI7XG5cbi8qKlxuICogRGVjb3JhdGVzIHRoZSBnaXZlbiBldmVudCBjb250ZW50IG9iamVjdCB3aXRoIHRoZSBcInNlbmQgc3RhcnQgdGltZVwiLiBUaGVcbiAqIG9iamVjdCB3aWxsIGJlIG1vZGlmaWVkIGluLXBsYWNlLlxuICogQHBhcmFtIHtvYmplY3R9IGNvbnRlbnQgVGhlIGV2ZW50IGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvcmF0ZVN0YXJ0U2VuZGluZ1RpbWUoY29udGVudDogSUNvbnRlbnQpOiB2b2lkIHtcbiAgICBjb250ZW50W1wiaW8uZWxlbWVudC5wZXJmb3JtYW5jZV9tZXRyaWNzXCJdID0ge1xuICAgICAgICBzZW5kU3RhcnRUczogRGF0ZS5ub3coKSxcbiAgICB9O1xufVxuXG4vKipcbiAqIENhbGxlZCB3aGVuIGFuIGV2ZW50IGRlY29yYXRlZCB3aXRoIGBkZWNvcmF0ZVN0YXJ0U2VuZGluZ1RpbWUoKWAgaGFzIGJlZW4gc2VudFxuICogYnkgdGhlIHNlcnZlciAodGhlIGNsaWVudCBub3cga25vd3MgdGhlIGV2ZW50IElEKS5cbiAqIEBwYXJhbSB7TWF0cml4Q2xpZW50fSBjbGllbnQgVGhlIGNsaWVudCB0byBzZW5kIGFzLlxuICogQHBhcmFtIHtzdHJpbmd9IGluUm9vbUlkIFRoZSByb29tIElEIHdoZXJlIHRoZSBvcmlnaW5hbCBldmVudCB3YXMgc2VudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBmb3JFdmVudElkIFRoZSBldmVudCBJRCBmb3IgdGhlIGRlY29yYXRlZCBldmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbmRSb3VuZFRyaXBNZXRyaWMoY2xpZW50OiBNYXRyaXhDbGllbnQsIGluUm9vbUlkOiBzdHJpbmcsIGZvckV2ZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIG5vaW5zcGVjdGlvbiBKU0lnbm9yZWRQcm9taXNlRnJvbUNhbGxcbiAgICBjbGllbnQuc2VuZEV2ZW50KGluUm9vbUlkLCBcImlvLmVsZW1lbnQucGVyZm9ybWFuY2VfbWV0cmljXCIsIHtcbiAgICAgICAgXCJpby5lbGVtZW50LnBlcmZvcm1hbmNlX21ldHJpY3NcIjoge1xuICAgICAgICAgICAgZm9yRXZlbnRJZDogZm9yRXZlbnRJZCxcbiAgICAgICAgICAgIHJlc3BvbnNlVHM6IERhdGUubm93KCksXG4gICAgICAgICAgICBraW5kOiBcInNlbmRfdGltZVwiLFxuICAgICAgICB9LFxuICAgIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLHdCQUF3QkEsQ0FBQ0MsT0FBaUIsRUFBUTtFQUM5REEsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLEdBQUc7SUFDeENDLFdBQVcsRUFBRUMsSUFBSSxDQUFDQyxHQUFHLENBQUM7RUFDMUIsQ0FBQztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0MsbUJBQW1CQSxDQUFDQyxNQUFvQixFQUFFQyxRQUFnQixFQUFFQyxVQUFrQixFQUFRO0VBQ2xHO0VBQ0FGLE1BQU0sQ0FBQ0csU0FBUyxDQUFDRixRQUFRLEVBQUUsK0JBQStCLEVBQUU7SUFDeEQsZ0NBQWdDLEVBQUU7TUFDOUJDLFVBQVUsRUFBRUEsVUFBVTtNQUN0QkUsVUFBVSxFQUFFUCxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDO01BQ3RCTyxJQUFJLEVBQUU7SUFDVjtFQUNKLENBQUMsQ0FBQztBQUNOIiwiaWdub3JlTGlzdCI6W119