插件钩子系统 plugin-hook-system

本技能用于生成一个基于钩子(Hook)的插件扩展系统,采用事件发射器模式。它允许开发者通过注册回调函数到特定钩子(事件)上,来灵活地扩展和修改应用程序的核心流程。系统支持并行触发(trigger)和瀑布流式(waterfall)执行两种模式,是实现模块化、可插拔软件架构(如WordPress插件系统)的核心工具。关键词:插件系统,钩子机制,事件驱动,扩展架构,软件设计模式,模块化开发。

架构设计 0 次安装 0 次浏览 更新于 2/23/2026

name: plugin-hook-system description: 生成基于钩子的插件扩展系统,采用事件发射器模式。 allowed-tools: Read, Write, Edit, Bash, Glob, Grep

插件钩子系统

生成基于钩子的插件扩展系统。

生成的模式

type HookCallback = (...args: any[]) => Promise<any> | any;

export class HookSystem {
  private hooks = new Map<string, HookCallback[]>();

  register(hookName: string, callback: HookCallback): void {
    const callbacks = this.hooks.get(hookName) || [];
    callbacks.push(callback);
    this.hooks.set(hookName, callbacks);
  }

  async trigger(hookName: string, ...args: any[]): Promise<any[]> {
    const callbacks = this.hooks.get(hookName) || [];
    const results = [];
    for (const cb of callbacks) {
      results.push(await cb(...args));
    }
    return results;
  }

  async waterfall<T>(hookName: string, initial: T): Promise<T> {
    const callbacks = this.hooks.get(hookName) || [];
    let result = initial;
    for (const cb of callbacks) {
      result = await cb(result);
    }
    return result;
  }
}

目标流程

  • 插件架构实现