123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- const logger = require("jitsi-meet-logger").getLogger(__filename);
-
- /**
- * Create deferred object.
- *
- * @returns {{promise, resolve, reject}}
- */
- export function createDeferred() {
- const deferred = {};
-
- deferred.promise = new Promise((resolve, reject) => {
- deferred.resolve = resolve;
- deferred.reject = reject;
- });
-
- return deferred;
- }
-
- /**
- * Creates a debounced function that delays invoking func until after wait
- * milliseconds have elapsed since the last time the debounced function was
- * invoked.
- *
- * @param fn
- * @param wait
- * @param options
- * @returns {function(...[*])}
- */
- export function debounce(fn, wait = 0, options = {}) {
- const leading = options.leading || false;
- const trailing
- = (typeof options.trailing === 'undefined') || options.trailing;
- let called = false;
-
- return (...args) => {
- if (!called) {
- leading && fn(...args);
-
- setTimeout(() => {
- called = false;
- trailing && fn(...args);
- }, wait);
-
- called = true;
- }
- };
- }
-
- /**
- * Returns the namespace for all global variables, functions, etc that we need.
- *
- * @returns {Object} the namespace.
- *
- * NOTE: After React-ifying everything this should be the only global.
- */
- export function getJitsiMeetGlobalNS() {
- if (!window.JitsiMeetJS) {
- window.JitsiMeetJS = {};
- }
- if (!window.JitsiMeetJS.app) {
- window.JitsiMeetJS.app = {};
- }
- return window.JitsiMeetJS.app;
- }
-
- /**
- * Reload page.
- */
- export function reload() {
- window.location.reload();
- }
-
- /**
- * Redirects to a specific new URL by replacing the current location (in the
- * history).
- *
- * @param {string} url the URL pointing to the location where the user should
- * be redirected to.
- */
- export function replace(url) {
- window.location.replace(url);
- }
-
- /**
- * Prints the error and reports it to the global error handler.
- *
- * @param e {Error} the error
- * @param msg {string} [optional] the message printed in addition to the error
- */
- export function reportError(e, msg = "") {
- logger.error(msg, e);
- window.onerror && window.onerror(msg, null, null, null, e);
- }
|