handle function application

Last updated: 2026-02-24T19:46:21.729Z

Metrics

LOC: 26 Complexity: 4 Params: 1

Signature

handle(message: ExtensionMessage): : Promise<unknown>

Source Code

async function handle(message: ExtensionMessage): Promise<unknown> {
  switch (message.type) {
    case "GET_LEARNED_ENTRIES":
      return getLearnedEntries();

    case "CLEAR_LEARNED_ENTRIES":
      await clearLearnedEntries();
      void broadcastToAllTabs({ type: "INVALIDATE_CLASSIFIER" });
      return { success: true };

    case "RETRAIN_LEARNING_DATABASE": {
      const rules = await getRules();
      const result = await retrainLearnedFromRules(rules);
      void broadcastToAllTabs({ type: "INVALIDATE_CLASSIFIER" });
      log.info(
        `RETRAIN_LEARNING_DATABASE concluído: ` +
          `imported=${result.imported}, skipped=${result.skipped}, ` +
          `totalRules=${result.totalRules}, durationMs=${result.durationMs}`,
      );
      return { success: true, ...result };
    }

    default:
      return { error: `Unhandled type in learningHandler: ${message.type}` };
  }
}

Dependencies (Outgoing)

graph LR handle["handle"] MessageHandler["MessageHandler"] ExtensionMessage["ExtensionMessage"] MessageType["MessageType"] getLearnedEntries["getLearnedEntries"] clearLearnedEntries["clearLearnedEntries"] retrainLearnedFromRules["retrainLearnedFromRules"] getRules["getRules"] broadcastToAllTabs["broadcastToAllTabs"] createLogger["createLogger"] handle -->|uses| MessageHandler handle -->|uses| ExtensionMessage handle -->|uses| MessageType handle -->|uses| getLearnedEntries handle -->|uses| clearLearnedEntries handle -->|uses| retrainLearnedFromRules handle -->|uses| getRules handle -->|uses| broadcastToAllTabs handle -->|uses| createLogger style handle fill:#dbeafe,stroke:#2563eb,stroke-width:2px click handle "2aca809332a83745.html" click MessageHandler "ab334f3bc9eb52d7.html" click ExtensionMessage "c70465261f6c12b8.html" click MessageType "2ef3f4e4b1044d26.html" click getLearnedEntries "e25cf1df37c01d04.html" click clearLearnedEntries "4bb803d8c753f036.html" click retrainLearnedFromRules "d3f53e03267ff965.html" click getRules "69aeb172cce4aa1c.html" click broadcastToAllTabs "33948cfdc4069058.html" click createLogger "70597a0a6b5e9ebb.html"

No incoming dependencies.