Skip to content

Commit

Permalink
Merge pull request #2018 from candela97/refactor-runtime.onMessage-li…
Browse files Browse the repository at this point in the history
…stener

Return a promise from the `runtime.onMessage` listener
  • Loading branch information
tfedor authored Aug 24, 2024
2 parents 75f9765 + 8929fa2 commit 1086250
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 14 deletions.
17 changes: 7 additions & 10 deletions src/js/Background/background.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,8 @@ browser.runtime.onInstalled.addListener(async (detail) => {

browser.runtime.onMessage.addListener((
message: Message,
sender: MessageSender,
sendResponse: (...params: any) => void
): true|undefined => {
sender: MessageSender
): undefined|Promise<any> => {

if (!sender || !sender.tab) { // not from a tab, ignore
return;
Expand All @@ -52,12 +51,12 @@ browser.runtime.onMessage.addListener((
return;
}

(async function(): Promise<void> {
return (async () => {
try {
await Promise.all([IndexedDB.init(), SettingsStore.init()]);

let response: any = undefined;
let handlers: MessageHandlerInterface[] = [
const handlers: MessageHandlerInterface[] = [
new AugmentedSteamApi(),
new SteamCommunityApi(),
new InventoryApi(),
Expand All @@ -67,18 +66,18 @@ browser.runtime.onMessage.addListener((
new CacheApi()
];

for (let handler of handlers) {
for (const handler of handlers) {
response = await handler.handle(message);
if (response !== Unrecognized) {
break;
}
}

if (response === Unrecognized) {
throw new Error(`Did not recognize message`);
throw new Error("Unknown message");
}

sendResponse(response);
return response;
} catch (err) {
console.group(`Callback: "${message.action}"`);
console.error("Failed to execute %o", message);
Expand All @@ -88,8 +87,6 @@ browser.runtime.onMessage.addListener((
throw new Error((<Error>err).toString());
}
})();

return true;
});

ContextMenu.register();
7 changes: 3 additions & 4 deletions src/js/Content/Modules/AugmentedSteam.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,10 +194,9 @@ export default class AugmentedSteam {

static init() {
document.addEventListener("asRequestError", e => {
// @ts-ignore
const name = e.detail.name ?? null;
// @ts-ignore
const message = e.detail.message ?? null;
const {detail} = e as CustomEvent;
const name = detail.name ?? null;
const message = detail.message ?? null;

if (name === "LoginError" && message !== null) {
this.addLoginWarning(message);
Expand Down

0 comments on commit 1086250

Please sign in to comment.