mirror of
https://github.com/discourse/discourse.git
synced 2024-11-29 03:03:44 +08:00
33 lines
854 B
Plaintext
33 lines
854 B
Plaintext
|
import deprecated from 'discourse-common/lib/deprecated';
|
||
|
|
||
|
export function getOwner(obj) {
|
||
|
if (Ember.getOwner) {
|
||
|
return Ember.getOwner(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) => {
|
||
|
return owner.lookupFactory ? owner.lookupFactory(...args) : owner._lookupFactory(...args);
|
||
|
},
|
||
|
|
||
|
deprecateContainer(target) {
|
||
|
Object.defineProperty(target, 'container', {
|
||
|
get() {
|
||
|
deprecated("Use `this.register` or `getOwner` instead of `this.container`");
|
||
|
return register;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
|
||
|
return register;
|
||
|
}
|