export default { run(app) { const Store = requirejs("discourse/services/store").default; const Site = requirejs( "discourse/plugins/discourse-custom-wizard/wizard/models/site" ).default; const Session = requirejs("discourse/models/session").default; const RestAdapter = requirejs("discourse/adapters/rest").default; const messageBus = requirejs("message-bus-client").default; const sniffCapabilites = requirejs( "discourse/pre-initializers/sniff-capabilities" ).default; const site = Site.current(); const session = Session.current(); const registrations = [ ["site-settings:main", app.SiteSettings, false], ["message-bus:main", messageBus, false], ["site:main", site, false], ["session:main", session, false], ["service:store", Store, true], ["adapter:rest", RestAdapter, true], ]; registrations.forEach((registration) => { if (!app.hasRegistration(registration[0])) { app.register(registration[0], registration[1], { instantiate: registration[2], }); } }); const targets = [ "controller", "component", "route", "model", "adapter", "mixin", ]; const injections = [ ["siteSettings", "site-settings:main"], ["messageBus", "message-bus:main"], ["site", "site:main"], ["session", "session:main"], ["store", "service:store"], ["appEvents", "service:app-events"], ]; injections.forEach((injection) => { targets.forEach((t) => app.inject(t, injection[0], injection[1])); }); if (!app.hasRegistration("capabilities:main")) { sniffCapabilites.initialize(null, app); } site.set("can_create_tag", false); }, };