refactor: mixin

This commit is contained in:
cha0s 2024-01-19 03:59:24 -06:00
parent 344d9de2cf
commit b8cdb46f34
7 changed files with 111 additions and 118 deletions

View File

@ -12,8 +12,12 @@ export const hooks = {
cache.reset();
}
},
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoBehavior extends Flecks {
'@flecks/core.starting': async (flecks) => {
flecks.avocado.behavior.globals = flecks.invokeMerge('@avocado/behavior.globals');
},
};
export const mixin = (Flecks) => class FlecksWithAvocadoBehavior extends Flecks {
constructor(...args) {
super(...args);
@ -25,9 +29,4 @@ export const hooks = {
};
}
}
),
'@flecks/core.starting': async (flecks) => {
flecks.avocado.behavior.globals = flecks.invokeMerge('@avocado/behavior.globals');
},
};

View File

@ -10,21 +10,6 @@ export const hooks = {
Flecks.decorate(require.context('./traits/decorators', false, /\.js$/))
),
'@avocado/traits.traits': Flecks.provide(require.context('./traits', false, /\.js$/)),
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoDialog extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
this.avocado.dialog = {
parser: undefined,
};
}
}
),
'@flecks/core.starting': (flecks) => {
const dialogFunctions = flecks.invokeMerge('@avocado/dialog.functions');
const resolver = (type) => (dialogFunctions[type] ? dialogFunctions[type] : (i) => i);
@ -42,3 +27,17 @@ export const hooks = {
},
'@flecks/socket.packets': Flecks.provide(require.context('./packets', false, /\.js$/)),
};
export const mixin = (Flecks) => class FlecksWithAvocadoDialog extends Flecks {
constructor(...args) {
super(...args);
if (!this.avocado) {
this.avocado = {};
}
this.avocado.dialog = {
parser: undefined,
};
}
};

View File

@ -10,8 +10,18 @@ export const hooks = {
resourceCache.reset();
}
},
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoResource extends Flecks {
'@flecks/core.starting': (flecks) => {
flecks.avocado.resource.Resources = flecks.gather(
'@avocado/resource.resources',
{
idProperty: 'resourceId',
typeProperty: 'resourceType',
},
);
},
};
export const mixin = (Flecks) => class FlecksWithAvocadoResource extends Flecks {
constructor(...args) {
super(...args);
@ -24,15 +34,4 @@ export const hooks = {
this.avocado.resource.Resources = {};
}
}
),
'@flecks/core.starting': (flecks) => {
flecks.avocado.resource.Resources = flecks.gather(
'@avocado/resource.resources',
{
idProperty: 'resourceId',
typeProperty: 'resourceType',
},
);
},
};

View File

@ -22,8 +22,21 @@ export {
};
export const hooks = {
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoResourcePersea extends Flecks {
'@flecks/core.starting': async (flecks) => {
const Controllers = (
await flecks.invokeSequentialAsync('@avocado/resource/persea.controllers')
).flat();
Controllers.push(
JsonController,
TextController,
BinaryController,
);
flecks.avocado.resource.persea.Controllers = Controllers;
},
'@flecks/redux.reducers': () => reducer,
};
export const mixin = (Flecks) => class FlecksWithAvocadoResourcePersea extends Flecks {
constructor(...args) {
super(...args);
@ -39,18 +52,4 @@ export const hooks = {
this.avocado.resource.persea.Controllers = {};
}
}
),
'@flecks/core.starting': async (flecks) => {
const Controllers = (
await flecks.invokeSequentialAsync('@avocado/resource/persea.controllers')
).flat();
Controllers.push(
JsonController,
TextController,
BinaryController,
);
flecks.avocado.resource.persea.Controllers = Controllers;
},
'@flecks/redux.reducers': () => reducer,
};

View File

@ -10,8 +10,18 @@ export const hooks = {
'@avocado/resource/persea.controllers': () => [
RoomController,
],
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoTopdownPersea extends Flecks {
'@flecks/core.starting': (flecks) => {
flecks.avocado.topdown.persea.RoomSides = flecks.invokeFlat(
'@avocado/topdown/persea.room-sides',
).flat();
},
'@avocado/topdown/persea.room-sides': () => [
TilesSide,
EntitiesSide,
],
};
export const mixin = (Flecks) => class FlecksWithAvocadoTopdownPersea extends Flecks {
constructor(...args) {
super(...args);
@ -26,15 +36,4 @@ export const hooks = {
};
}
}
),
'@flecks/core.starting': (flecks) => {
flecks.avocado.topdown.persea.RoomSides = flecks.invokeFlat(
'@avocado/topdown/persea.room-sides',
).flat();
},
'@avocado/topdown/persea.room-sides': () => [
TilesSide,
EntitiesSide,
],
};

View File

@ -2,8 +2,12 @@ export {default as Trait} from './trait';
export {default as StateProperty} from './state-property';
export const hooks = {
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoTraitrs extends Flecks {
'@flecks/core.starting': (flecks) => {
flecks.avocado.traits.Traits = flecks.gather('@avocado/traits.traits');
},
};
export const mixin = (Flecks) => class FlecksWithAvocadoTraitrs extends Flecks {
constructor(...args) {
super(...args);
@ -16,9 +20,4 @@ export const hooks = {
this.avocado.traits.Traits = {};
}
}
),
'@flecks/core.starting': (flecks) => {
flecks.avocado.traits.Traits = flecks.gather('@avocado/traits.traits');
},
};

View File

@ -1,6 +1,12 @@
export const hooks = {
'@flecks/core.mixin': (Flecks) => (
class FlecksWithAvocadoTraits extends Flecks {
'@flecks/core.starting': async (flecks) => {
flecks.avocado.traits.persea.Components = flecks.invokeMerge(
'@avocado/traits/persea.components',
);
},
};
export const mixin = (Flecks) => class FlecksWithAvocadoTraits extends Flecks {
constructor(...args) {
super(...args);
@ -16,11 +22,4 @@ export const hooks = {
this.avocado.traits.persea.Components = {};
}
}
),
'@flecks/core.starting': async (flecks) => {
flecks.avocado.traits.persea.Components = flecks.invokeMerge(
'@avocado/traits/persea.components',
);
},
};