From 974a8115dbb6609135c0a2838f81e95e56472804 Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Mon, 3 Feb 2025 15:30:54 +0100 Subject: [PATCH 1/2] breaking: remove old messenger aliases --- packages/base-controller/src/Messenger.ts | 2 - .../src/RestrictedMessenger.test.ts | 48 ------------------- .../src/RestrictedMessenger.ts | 26 +--------- packages/base-controller/src/index.ts | 12 ++--- 4 files changed, 5 insertions(+), 83 deletions(-) diff --git a/packages/base-controller/src/Messenger.ts b/packages/base-controller/src/Messenger.ts index 605b4dae4f7..cd6feed628f 100644 --- a/packages/base-controller/src/Messenger.ts +++ b/packages/base-controller/src/Messenger.ts @@ -458,5 +458,3 @@ export class Messenger< }); } } - -export { Messenger as ControllerMessenger }; diff --git a/packages/base-controller/src/RestrictedMessenger.test.ts b/packages/base-controller/src/RestrictedMessenger.test.ts index c0c2a66115f..f14990f45ee 100644 --- a/packages/base-controller/src/RestrictedMessenger.test.ts +++ b/packages/base-controller/src/RestrictedMessenger.test.ts @@ -16,23 +16,6 @@ describe('RestrictedMessenger', () => { ).toThrow('Messenger not provided'); }); - it('should throw if both controllerMessenger and messenger are provided', () => { - const messenger = new Messenger(); - - expect( - () => - new RestrictedMessenger({ - controllerMessenger: messenger, - messenger, - name: 'Test', - allowedActions: [], - allowedEvents: [], - }), - ).toThrow( - `Both messenger properties provided. Provide message using only 'messenger' option, 'controllerMessenger' is deprecated`, - ); - }); - it('should accept messenger parameter', () => { type CountAction = { type: 'CountController:count'; @@ -63,37 +46,6 @@ describe('RestrictedMessenger', () => { expect(count).toBe(1); }); - - it('should accept controllerMessenger parameter', () => { - type CountAction = { - type: 'CountController:count'; - handler: (increment: number) => void; - }; - const messenger = new Messenger(); - const restrictedMessenger = new RestrictedMessenger< - 'CountController', - CountAction, - never, - never, - never - >({ - controllerMessenger: messenger, - name: 'CountController', - allowedActions: [], - allowedEvents: [], - }); - - let count = 0; - restrictedMessenger.registerActionHandler( - 'CountController:count', - (increment: number) => { - count += increment; - }, - ); - restrictedMessenger.call('CountController:count', 1); - - expect(count).toBe(1); - }); }); it('should allow registering and calling an action handler', () => { diff --git a/packages/base-controller/src/RestrictedMessenger.ts b/packages/base-controller/src/RestrictedMessenger.ts index c1cd62b6ad1..59be9e03592 100644 --- a/packages/base-controller/src/RestrictedMessenger.ts +++ b/packages/base-controller/src/RestrictedMessenger.ts @@ -29,18 +29,6 @@ export type RestrictedMessengerConstraint = string >; -/** - * A universal supertype of all `RestrictedMessenger` instances. This type can be assigned to any - * `RestrictedMessenger` type. - * - * @template Namespace - Name of the module this messenger is for. Optionally can be used to - * narrow this type to a constraint for the messenger of a specific module. - * @deprecated This has been renamed to `RestrictedMessengerConstraint`. - */ -export type RestrictedControllerMessengerConstraint< - Namespace extends string = string, -> = RestrictedMessengerConstraint; - /** * A restricted messenger. * @@ -81,7 +69,6 @@ export class RestrictedMessenger< * unregistering actions and clearing event subscriptions. * * @param options - Options. - * @param options.controllerMessenger - The messenger instance that is being wrapped. (deprecated) * @param options.messenger - The messenger instance that is being wrapped. * @param options.name - The name of the thing this messenger will be handed to (e.g. the * controller name). This grants "ownership" of actions and events under this namespace to the @@ -92,28 +79,21 @@ export class RestrictedMessenger< * allowed to subscribe to. */ constructor({ - controllerMessenger, messenger, name, allowedActions, allowedEvents, }: { - controllerMessenger?: Messenger; messenger?: Messenger; name: Namespace; allowedActions: NotNamespacedBy[]; allowedEvents: NotNamespacedBy[]; }) { - if (messenger && controllerMessenger) { - throw new Error( - `Both messenger properties provided. Provide message using only 'messenger' option, 'controllerMessenger' is deprecated`, - ); - } else if (!messenger && !controllerMessenger) { + if (!messenger) { throw new Error('Messenger not provided'); } // The above condition guarantees that one of these options is defined. - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - this.#messenger = (messenger ?? controllerMessenger)!; + this.#messenger = messenger; this.#namespace = name; this.#allowedActions = allowedActions; this.#allowedEvents = allowedEvents; @@ -429,5 +409,3 @@ export class RestrictedMessenger< return name.startsWith(`${this.#namespace}:`); } } - -export { RestrictedMessenger as RestrictedControllerMessenger }; diff --git a/packages/base-controller/src/index.ts b/packages/base-controller/src/index.ts index af19ddfc505..4b9842a23e6 100644 --- a/packages/base-controller/src/index.ts +++ b/packages/base-controller/src/index.ts @@ -42,12 +42,6 @@ export type { NotNamespacedBy, NamespacedName, } from './Messenger'; -export { ControllerMessenger, Messenger } from './Messenger'; -export type { - RestrictedControllerMessengerConstraint, - RestrictedMessengerConstraint, -} from './RestrictedMessenger'; -export { - RestrictedControllerMessenger, - RestrictedMessenger, -} from './RestrictedMessenger'; +export { Messenger } from './Messenger'; +export type { RestrictedMessengerConstraint } from './RestrictedMessenger'; +export { RestrictedMessenger } from './RestrictedMessenger'; From 6ca65afb3e114051d7ab38ba461ce786e8c36f5c Mon Sep 17 00:00:00 2001 From: Salah-Eddine Saakoun Date: Mon, 3 Feb 2025 15:32:56 +0100 Subject: [PATCH 2/2] add changelog --- packages/base-controller/CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/base-controller/CHANGELOG.md b/packages/base-controller/CHANGELOG.md index 7e6a8261960..c5410addda8 100644 --- a/packages/base-controller/CHANGELOG.md +++ b/packages/base-controller/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- **BREAKING:** Remove deprecated messenger-related exports and simplify `RestrictedMessenger` constructor ([#5260](https://github.com/MetaMask/core/pull/5260)) + - Remove `ControllerMessenger` export which was an alias for `Messenger`. Consumers should import `Messenger` directly + - Remove `RestrictedControllerMessenger` export which was an alias for `RestrictedMessenger`. Consumers should import `RestrictedMessenger` directly + - Remove `RestrictedControllerMessengerConstraint` type export which was an alias for `RestrictedMessengerConstraint`. Consumers should use `RestrictedMessengerConstraint` type directly + - Simplify `RestrictedMessenger` constructor by removing deprecated `controllerMessenger` parameter. The messenger instance should now be passed using only the `messenger` parameter instead of supporting both options + ## [7.1.1] ### Changed