UNPKG

@yiero/gmlib

Version:

GM Lib for Tampermonkey/ScriptCat

46 lines (45 loc) 1.1 kB
/** * 导航类型 * * 标识触发路由变化的来源 */ export type NavigationType = /** history.pushState 调用 */ 'push' /** history.replaceState 调用 */ | 'replace' /** 浏览器前进/后退 (popstate) */ | 'traverse' /** hash 变化 (hashchange) */ | 'hash'; /** * 路由变化事件信息 */ export interface IRouteChangeEvent { /** 目标 URL */ to: string; /** 来源 URL */ from: string; /** 导航类型 */ type: NavigationType; /** 导航信息 (Navigation API 专属,需浏览器支持) */ info?: unknown; /** * 拦截导航 (Navigation API 专属,需浏览器支持) * * 调用此函数可以拦截导航,执行自定义处理逻辑 */ intercept?: (handler: () => Promise<void> | void) => void; } /** * 路由变化回调函数类型 * * @param event 路由变化事件信息 */ export type RouteChangeCallback = (event: IRouteChangeEvent) => void; /** * 取消监听函数类型 * * 调用此函数会取消路由监听,并恢复原始的 history 方法 */ export type Unsubscribe = () => void;