Path: blob/main/plugins/execute-js/lib/CorePlugin.ts
2579 views
import { IOnClientCommandMeta } from '@secret-agent/interfaces/ICorePlugin';1import CorePlugin from '@secret-agent/plugin-utils/lib/CorePlugin';2import { IExecuteJsArgs } from './IExecuteJsArgs';34const { name: pluginId } = require('../package.json');56export default class ExecuteJsCorePlugin extends CorePlugin {7public static id = pluginId;89public async onClientCommand(10{ puppetFrame, puppetPage }: IOnClientCommandMeta,11args: IExecuteJsArgs,12): Promise<any> {13const { fnName, fnSerialized, isolateFromWebPageEnvironment } = args;14const frame = puppetFrame ?? puppetPage.mainFrame;15const result = await frame.evaluate<any>(fnSerialized, isolateFromWebPageEnvironment);1617if ((result as any)?.error) {18this.logger.error<any>(fnName, { error: result.error });19throw new Error((result as any).error as string);20} else {21return result as any;22}23}24}252627