browserless hooks 简单说明

browserless提供了hooks 能力,默认实现都为空,以下简单说明下内部处理

默认实现

如下图

内部处理

  • hooks.ts 定义
import {
  AfterResponse,
  BeforeRequest,
  BrowserHook,
  PageHook,
} from '@browserless.io/browserless';
import { EventEmitter } from 'events';
 
// KEPT for backwards compatibility reasons since some downstream
// docker images will override these files to inject their own hook
// behaviors
// @ts-ignore
import { default as afterRequest } from '../external/after.js';
// @ts-ignore
import { default as beforeRequest } from '../external/before.js';
// @ts-ignore
import { default as browserHook } from '../external/browser.js';
// @ts-ignore
import { default as pageHook } from '../external/page.js';
 
export class Hooks extends EventEmitter {
  before(args: BeforeRequest): Promise<boolean> {
    return beforeRequest(args);
  }
 
  after(args: AfterResponse): Promise<unknown> {
    return afterRequest(args);
  }
 
  page(args: PageHook): Promise<unknown> {
    return pageHook(args);
  }
 
  browser(args: BrowserHook): Promise<unknown> {
    return browserHook(args);
  }
 
  /**
   * Implement any browserless-core-specific shutdown logic here.
   * Calls the empty-SDK stop method for downstream implementations.
   */
  public shutdown = async () => {
    await this.stop();
  };
 
  /**
   * Left blank for downstream SDK modules to optionally implement.
   */
  public stop = () => {};
}
  • 使用

如下图,可以看到不少地方都有使用到,核心就是对于几个hooks 的调用

说明

默认hooks 是放在external 文件夹中的几个文件,如果我们希望自己扩展,就可以重写几个实现,对于基于docker 部署的,直接进行文件替换

参考资料

src/hooks.ts
https://docs.browserless.io/
https://github.com/browserless/browserless

posted on   荣锋亮  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2023-07-01 kubeskoop 阿里开源的k8s 网络分析工具
2023-07-01 aws 开源的微前端发现实现 frontend-discovery
2023-07-01 长亭waf-ce 版本嵌入模式集成说明
2022-07-01 dremio 对于iceberg 的操作支持
2021-07-01 cube.js 官方关于cube store 的一些实践说明
2020-07-01 amqproxy 一个很不错的rabbitmq proxy
2020-07-01 Maintaining Long-Lived Connections with AMQProxy

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示