mirror of
https://github.com/sern-handler/handler
synced 2026-06-06 01:16:55 +00:00
fix initPlugins not reassigning
This commit is contained in:
@@ -26,7 +26,6 @@ export class Container {
|
||||
}
|
||||
private registerHooks(hookname: string, insert: object) {
|
||||
if(hasCallableMethod(insert, hookname)) {
|
||||
console.log(hookname)
|
||||
//@ts-ignore
|
||||
this.addHook(hookname, () => insert[hookname]())
|
||||
}
|
||||
|
||||
@@ -199,13 +199,14 @@ export function createResultResolver<Output>(config: {
|
||||
};
|
||||
};
|
||||
export async function callInitPlugins(module: Module, deps: Dependencies, sEmitter?: Emitter) {
|
||||
for(const plugin of module.plugins) {
|
||||
let _module = module;
|
||||
for(const plugin of _module.plugins ?? []) {
|
||||
const res = await plugin.execute({
|
||||
module,
|
||||
absPath: module.meta.absPath ,
|
||||
absPath: _module.meta.absPath ,
|
||||
updateModule: (partial: Partial<Module>) => {
|
||||
module = { ...module, ...partial };
|
||||
return module;
|
||||
_module = { ..._module, ...partial };
|
||||
return _module;
|
||||
},
|
||||
deps
|
||||
});
|
||||
@@ -214,6 +215,7 @@ export async function callInitPlugins(module: Module, deps: Dependencies, sEmitt
|
||||
throw Error("Plugin failed with controller.stop()");
|
||||
}
|
||||
}
|
||||
return _module
|
||||
}
|
||||
async function callPlugins({ args, module, deps }: ExecutePayload) {
|
||||
let state = {};
|
||||
|
||||
@@ -24,10 +24,11 @@ export default async function(dir: string, deps : UnpackedDependencies) {
|
||||
if(!validType) {
|
||||
throw Error(`Found ${module.name} at ${module.meta.absPath}, which has incorrect \`type\``);
|
||||
}
|
||||
await callInitPlugins(module, deps, sEmitter);
|
||||
const resultModule = await callInitPlugins(module, deps, sEmitter);
|
||||
console.log(resultModule)
|
||||
// FREEZE! no more writing!!
|
||||
commands.set(module.meta.id, Object.freeze(module));
|
||||
sEmitter.emit('module.register', resultPayload(PayloadType.Success, module));
|
||||
commands.set(resultModule.meta.id, Object.freeze(resultModule));
|
||||
sEmitter.emit('module.register', resultPayload(PayloadType.Success, resultModule));
|
||||
}
|
||||
sEmitter.emit('modulesLoaded');
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ function mockDeps() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
describe('eventDispatcher standard', () => {
|
||||
let m: Processed<Module>;
|
||||
|
||||
Reference in New Issue
Block a user