mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-19 14:00:51 +00:00
26 lines
763 B
TypeScript
26 lines
763 B
TypeScript
export function registerHookHandlersForTest<TApi>(params: {
|
|
config: Record<string, unknown>;
|
|
register: (api: TApi) => void;
|
|
}) {
|
|
const handlers = new Map<string, (event: unknown, ctx: unknown) => unknown>();
|
|
const api = {
|
|
config: params.config,
|
|
on: (hookName: string, handler: (event: unknown, ctx: unknown) => unknown) => {
|
|
handlers.set(hookName, handler);
|
|
},
|
|
} as TApi;
|
|
params.register(api);
|
|
return handlers;
|
|
}
|
|
|
|
export function getRequiredHookHandler(
|
|
handlers: Map<string, (event: unknown, ctx: unknown) => unknown>,
|
|
hookName: string,
|
|
): (event: unknown, ctx: unknown) => unknown {
|
|
const handler = handlers.get(hookName);
|
|
if (!handler) {
|
|
throw new Error(`expected ${hookName} hook handler`);
|
|
}
|
|
return handler;
|
|
}
|