refactor: Trait::initialize before hooks, actions, and listeners
This commit is contained in:
parent
5e8805fde1
commit
3b50c134d0
|
@ -88,6 +88,14 @@ export class Traits {
|
||||||
// Instantiate.
|
// Instantiate.
|
||||||
const {params, state} = json;
|
const {params, state} = json;
|
||||||
const instance = new Trait(this.entity_PRIVATE, params, state);
|
const instance = new Trait(this.entity_PRIVATE, params, state);
|
||||||
|
// Proxy properties.
|
||||||
|
const properties = enumerateProperties(Trait.prototype);
|
||||||
|
for (const key in properties) {
|
||||||
|
properties[key].instance = instance;
|
||||||
|
this.properties_PRIVATE[key] = properties[key];
|
||||||
|
}
|
||||||
|
// Let the Trait do its initialization.
|
||||||
|
instance.initialize();
|
||||||
// Attach listeners.
|
// Attach listeners.
|
||||||
const listeners = instance.listeners();
|
const listeners = instance.listeners();
|
||||||
for (const eventName in listeners) {
|
for (const eventName in listeners) {
|
||||||
|
@ -110,14 +118,6 @@ export class Traits {
|
||||||
type: Trait.type(),
|
type: Trait.type(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Proxy properties.
|
|
||||||
const properties = enumerateProperties(Trait.prototype);
|
|
||||||
for (const key in properties) {
|
|
||||||
properties[key].instance = instance;
|
|
||||||
this.properties_PRIVATE[key] = properties[key];
|
|
||||||
}
|
|
||||||
// Let the Trait do its initialization.
|
|
||||||
instance.initialize();
|
|
||||||
// Add state.
|
// Add state.
|
||||||
this._setInstanceState(type, instance);
|
this._setInstanceState(type, instance);
|
||||||
// Track trait.
|
// Track trait.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user