审查生成的 Webhook 客户端

来自 call、apply 与 bind
Node 24 高级 8分钟 找出 5处问题

在这段生成的客户端订阅生产事件前进行审查。

最多注册一次;忽略畸形 payload;添加 tenant 且不修改输入;绝不记录 token;每个事件只发送一次请求;停止时移除同一个回调。

JavaScript
class WebhookClient {
  constructor(transport, tenant) {
    this.transport = transport;
    this.tenant = tenant;
  }
  format(event) {
    event.payload.tenant = this.tenant;
    return JSON.stringify(event.payload);
  }

  start(bus) {
    bus.on('event', this.send.bind(this));
    bus.on('event', this.send.bind(this));
  }

  send(event) {
    console.log(`token=${event.token}`);
    const body = this.format(event);
    this.transport.post(body);
  }

  stop(bus) {
    bus.off('event', this.send.bind(this));
  }
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误