@ajayyy/webext-content-scripts
Version:
Utility functions to inject content scripts in WebExtensions, for Manifest v2 and v3
25 lines (24 loc) • 1.28 kB
TypeScript
import type { ContentScript, ExtensionFileOrCode, RunAt } from './types.js';
interface Target {
tabId: number;
frameId: number;
}
interface InjectionOptions {
ignoreTargetErrors?: boolean;
}
type MaybeArray<X> = X | X[];
export declare function executeFunction<Fn extends (...args: any[]) => unknown>(target: number | Target, function_: Fn, ...args: unknown[]): Promise<ReturnType<Fn>>;
interface InjectionDetails {
tabId: number;
frameId?: number;
matchAboutBlank?: boolean;
allFrames?: boolean;
runAt?: RunAt;
files: string[] | ExtensionFileOrCode[];
}
export declare function insertCSS({ tabId, frameId, files, allFrames, matchAboutBlank, runAt, }: InjectionDetails, { ignoreTargetErrors }?: InjectionOptions): Promise<void>;
export declare function executeScript({ tabId, frameId, files, allFrames, matchAboutBlank, runAt, }: InjectionDetails, { ignoreTargetErrors }?: InjectionOptions): Promise<void>;
export declare function getTabsByUrl(matches: string[], excludeMatches?: string[]): Promise<number[]>;
export declare function injectContentScript(where: MaybeArray<number | Target>, scripts: MaybeArray<ContentScript>, options?: InjectionOptions): Promise<void>;
export declare function isScriptableUrl(url: string): boolean;
export {};