DEV: Replace `message-bus:main` with `service:message-bus` (#17691)
This will allow consumers to inject it using `messageBus: service()` in preparation for the removal of implicit injections in Ember 4.0. `message-bus:main` is still available and will print a deprecation notice. The MessageBus library is not en ember object, and doesn't need access to any of our injections. Therefore, we can set up a simple class which defines itself as a 'Service Factory', and returns the MessageBus library in the `create` method.
This commit is contained in:
parent
296aad430a
commit
96abd72387
|
@ -11,7 +11,7 @@ export default {
|
|||
|
||||
site.set("banner", banner);
|
||||
|
||||
const messageBus = container.lookup("message-bus:main");
|
||||
const messageBus = container.lookup("service:message-bus");
|
||||
if (!messageBus) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ export default {
|
|||
name: "live-development",
|
||||
|
||||
initialize(container) {
|
||||
const messageBus = container.lookup("message-bus:main");
|
||||
const messageBus = container.lookup("service:message-bus");
|
||||
const session = container.lookup("session:main");
|
||||
|
||||
// Preserve preview_theme_id=## and pp=async-flamegraph parameters across pages
|
||||
|
|
|
@ -10,7 +10,7 @@ export default {
|
|||
after: "message-bus",
|
||||
|
||||
initialize(container) {
|
||||
const messageBus = container.lookup("message-bus:main");
|
||||
const messageBus = container.lookup("service:message-bus");
|
||||
|
||||
if (!messageBus) {
|
||||
return;
|
||||
|
|
|
@ -12,7 +12,7 @@ export default {
|
|||
}
|
||||
|
||||
const siteSettings = container.lookup("site-settings:main");
|
||||
const messageBus = container.lookup("message-bus:main");
|
||||
const messageBus = container.lookup("service:message-bus");
|
||||
const keyValueStore = container.lookup("service:key-value-store");
|
||||
const currentUser = container.lookup("current-user:main");
|
||||
LogsNotice.reopenClass(Singleton, {
|
||||
|
|
|
@ -40,7 +40,7 @@ export default {
|
|||
return;
|
||||
}
|
||||
|
||||
const messageBus = container.lookup("message-bus:main"),
|
||||
const messageBus = container.lookup("service:message-bus"),
|
||||
user = container.lookup("current-user:main"),
|
||||
siteSettings = container.lookup("site-settings:main");
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ export default {
|
|||
after: "message-bus",
|
||||
|
||||
initialize(container) {
|
||||
const messageBus = container.lookup("message-bus:main");
|
||||
const messageBus = container.lookup("service:message-bus");
|
||||
if (!messageBus) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ export default {
|
|||
|
||||
initialize(container) {
|
||||
const user = container.lookup("current-user:main");
|
||||
const bus = container.lookup("message-bus:main");
|
||||
const bus = container.lookup("service:message-bus");
|
||||
const appEvents = container.lookup("service:app-events");
|
||||
|
||||
if (user) {
|
||||
|
|
|
@ -2,7 +2,6 @@ import TopicTrackingState, {
|
|||
startTracking,
|
||||
} from "discourse/models/topic-tracking-state";
|
||||
import DiscourseLocation from "discourse/lib/discourse-location";
|
||||
import MessageBus from "message-bus-client";
|
||||
import Session from "discourse/models/session";
|
||||
import Site from "discourse/models/site";
|
||||
import User from "discourse/models/user";
|
||||
|
@ -17,9 +16,6 @@ export function registerObjects(app) {
|
|||
}
|
||||
app.__registeredObjects__ = true;
|
||||
|
||||
// TODO: This should be included properly
|
||||
app.register("message-bus:main", MessageBus, { instantiate: false });
|
||||
|
||||
const siteSettings = app.SiteSettings;
|
||||
app.register("site-settings:main", siteSettings, { instantiate: false });
|
||||
}
|
||||
|
@ -98,6 +94,15 @@ export default {
|
|||
dropFrom: "3.0.0",
|
||||
});
|
||||
|
||||
deprecateRegistration({
|
||||
app,
|
||||
container,
|
||||
oldName: "message-bus:main",
|
||||
newName: "service:message-bus",
|
||||
since: "2.9.0.beta7",
|
||||
dropFrom: "3.0.0",
|
||||
});
|
||||
|
||||
let siteSettings = container.lookup("site-settings:main");
|
||||
|
||||
const currentUser = User.current();
|
||||
|
@ -105,7 +110,7 @@ export default {
|
|||
app.currentUser = currentUser;
|
||||
|
||||
const topicTrackingState = TopicTrackingState.create({
|
||||
messageBus: MessageBus,
|
||||
messageBus: container.lookup("service:message-bus"),
|
||||
siteSettings,
|
||||
currentUser,
|
||||
});
|
||||
|
@ -129,14 +134,19 @@ export default {
|
|||
app.inject(t, "site", "site:main");
|
||||
app.inject(t, "searchService", "service:search");
|
||||
app.inject(t, "session", "session:main");
|
||||
app.inject(t, "messageBus", "message-bus:main");
|
||||
app.inject(t, "messageBus", "service:message-bus");
|
||||
app.inject(t, "siteSettings", "site-settings:main");
|
||||
app.inject(t, "topicTrackingState", "topic-tracking-state:main");
|
||||
app.inject(t, "keyValueStore", "service:key-value-store");
|
||||
});
|
||||
|
||||
app.inject("service", "session", "session:main");
|
||||
app.inject("service", "messageBus", "message-bus:main");
|
||||
injectServiceIntoService({
|
||||
container,
|
||||
app,
|
||||
property: "messageBus",
|
||||
specifier: "service:message-bus",
|
||||
});
|
||||
app.inject("service", "siteSettings", "site-settings:main");
|
||||
app.inject("service", "topicTrackingState", "topic-tracking-state:main");
|
||||
injectServiceIntoService({
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
import MessageBus from "message-bus-client";
|
||||
|
||||
export default class MessageBusService {
|
||||
static isServiceFactory = true;
|
||||
|
||||
static create() {
|
||||
return MessageBus;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue