Skip to content

Commit

Permalink
Remove useless logging.
Browse files Browse the repository at this point in the history
  • Loading branch information
DeKleineKobini committed Feb 25, 2025
1 parent 3351bc1 commit f8348fc
Showing 1 changed file with 89 additions and 90 deletions.
179 changes: 89 additions & 90 deletions extension/scripts/global/functions/requires.js
Original file line number Diff line number Diff line change
@@ -1,90 +1,89 @@
"use strict";

function requireCondition(condition, options = {}) {
options = {
delay: 50,
maxCycles: 1000,
...options,
};

// Preserve stack for throwing later when needed.
const error = new Error("Maximum cycles reached.");

return new Promise((resolve, reject) => {
if (checkCondition()) return;

let counter = 0;
const checker = setInterval(() => {
if (checkCounter(counter++) || checkCondition()) return clearInterval(checker);
}, options.delay);

function checkCondition() {
const response = condition();
if (!response) return false;

if (typeof response === "boolean") {
if (response) resolve();
else reject();
} else if (typeof response === "object") {
if (response.hasOwnProperty("success")) {
if (response.success === true) resolve(response.value);
else reject(response.value);
} else {
resolve(response);
}
}
return true;
}

function checkCounter(count) {
if (options.maxCycles <= 0) return false;

if (count > options.maxCycles) {
reject(error);
console.trace();
return true;
}
return false;
}
});
}

function requireElement(selector, attributes) {
attributes = {
invert: false,
parent: document,
...attributes,
};
if (attributes.invert) {
return requireCondition(() => !attributes.parent.find(selector), attributes);
} else {
return requireCondition(() => attributes.parent.find(selector), attributes);
}
}

function requireSidebar() {
return requireElement("#sidebar");
}

function requireContent() {
return requireElement(".content-wrapper");
}

function requireItemsLoaded() {
return requireElement(".items-cont[aria-expanded=true] > li > .title-wrap");
}

function requireChatsLoaded() {
return requireElement("#chatRoot [class*='chat-list-button__']");
}

function requireFeatureManager() {
return new Promise((resolve) => {
const featureManagerIntervalID = setInterval(() => {
while (typeof featureManager === "undefined") {}

clearInterval(featureManagerIntervalID);
resolve();
}, 100);
});
}
"use strict";

function requireCondition(condition, options = {}) {
options = {
delay: 50,
maxCycles: 1000,
...options,
};

// Preserve stack for throwing later when needed.
const error = new Error("Maximum cycles reached.");

return new Promise((resolve, reject) => {
if (checkCondition()) return;

let counter = 0;
const checker = setInterval(() => {
if (checkCounter(counter++) || checkCondition()) return clearInterval(checker);
}, options.delay);

function checkCondition() {
const response = condition();
if (!response) return false;

if (typeof response === "boolean") {
if (response) resolve();
else reject();
} else if (typeof response === "object") {
if (response.hasOwnProperty("success")) {
if (response.success === true) resolve(response.value);
else reject(response.value);
} else {
resolve(response);
}
}
return true;
}

function checkCounter(count) {
if (options.maxCycles <= 0) return false;

if (count > options.maxCycles) {
reject(error);
return true;
}
return false;
}
});
}

function requireElement(selector, attributes) {
attributes = {
invert: false,
parent: document,
...attributes,
};
if (attributes.invert) {
return requireCondition(() => !attributes.parent.find(selector), attributes);
} else {
return requireCondition(() => attributes.parent.find(selector), attributes);
}
}

function requireSidebar() {
return requireElement("#sidebar");
}

function requireContent() {
return requireElement(".content-wrapper");
}

function requireItemsLoaded() {
return requireElement(".items-cont[aria-expanded=true] > li > .title-wrap");
}

function requireChatsLoaded() {
return requireElement("#chatRoot [class*='chat-list-button__']");
}

function requireFeatureManager() {
return new Promise((resolve) => {
const featureManagerIntervalID = setInterval(() => {
while (typeof featureManager === "undefined") {}

clearInterval(featureManagerIntervalID);
resolve();
}, 100);
});
}

0 comments on commit f8348fc

Please sign in to comment.