mirror of
https://github.com/bitwarden/browser
synced 2025-12-12 06:13:38 +00:00
* Introduce MessageSender * Update `messageSenderFactory` * Remove Comment * Use BrowserApi * Update Comment * Rename to CommandDefinition * Add More Documentation to MessageSender * Add `EMPTY` helpers and remove NoopMessageSender * Calm Down Logging * Limit Logging On Known Errors * Use `messageStream` Parameter Co-authored-by: Matt Gibson <mgibson@bitwarden.com> * Add eslint rules * Update Error Handling Co-authored-by: Cesar Gonzalez <cesar.a.gonzalezcs@gmail.com> * Delete Lazy Classes In Favor of Observable Factories * Remove Fido Messages --------- Co-authored-by: Matt Gibson <mgibson@bitwarden.com> Co-authored-by: Cesar Gonzalez <cesar.a.gonzalezcs@gmail.com>
27 lines
726 B
TypeScript
27 lines
726 B
TypeScript
import { map, share } from "rxjs";
|
|
|
|
import { tagAsExternal } from "@bitwarden/common/platform/messaging/internal";
|
|
|
|
import { fromChromeEvent } from "../browser/from-chrome-event";
|
|
|
|
/**
|
|
* Creates an observable that listens to messages through `chrome.runtime.onMessage`.
|
|
* @returns An observable stream of messages.
|
|
*/
|
|
export const fromChromeRuntimeMessaging = () => {
|
|
return fromChromeEvent(chrome.runtime.onMessage).pipe(
|
|
map(([message, sender]) => {
|
|
message ??= {};
|
|
|
|
// Force the sender onto the message as long as we won't overwrite anything
|
|
if (!("webExtSender" in message)) {
|
|
message.webExtSender = sender;
|
|
}
|
|
|
|
return message;
|
|
}),
|
|
tagAsExternal,
|
|
share(),
|
|
);
|
|
};
|