mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 09:15:48 +08:00
cbb27241c4
This is to help with the migration to Ember CLI. In the current running version of Discourse everything should be the same as before, just with a few extra files that are not used. However, using Ember CLI this can be installed as an Ember addon. Co-Authored-By: Jarek Radosz <jradosz@gmail.com>
40 lines
1010 B
JavaScript
40 lines
1010 B
JavaScript
import deprecated from "discourse-common/lib/deprecated";
|
|
import { getOwner as emberGetOwner } from "@ember/application";
|
|
|
|
export function getOwner(obj) {
|
|
if (emberGetOwner) {
|
|
return emberGetOwner(obj) || Discourse.__container__;
|
|
}
|
|
|
|
return obj.container;
|
|
}
|
|
|
|
// `this.container` is deprecated, but we can still build a container-like
|
|
// object for components to use
|
|
export function getRegister(obj) {
|
|
const owner = getOwner(obj);
|
|
const register = {
|
|
lookup: (...args) => owner.lookup(...args),
|
|
lookupFactory: (...args) => {
|
|
if (owner.factoryFor) {
|
|
return owner.factoryFor(...args);
|
|
} else if (owner._lookupFactory) {
|
|
return owner._lookupFactory(...args);
|
|
}
|
|
},
|
|
|
|
deprecateContainer(target) {
|
|
Object.defineProperty(target, "container", {
|
|
get() {
|
|
deprecated(
|
|
"Use `this.register` or `getOwner` instead of `this.container`"
|
|
);
|
|
return register;
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
return register;
|
|
}
|