Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ulixee
GitHub Repository: ulixee/secret-agent
Path: blob/main/plugin-utils/lib/CorePlugin.ts
1028 views
1
import { IBoundLog } from '@secret-agent/interfaces/ILog';
2
import ICorePlugin, {
3
CorePluginClassDecorator,
4
ICorePluginClass,
5
} from '@secret-agent/interfaces/ICorePlugin';
6
import { PluginTypes } from '@secret-agent/interfaces/IPluginTypes';
7
import ICorePluginCreateOptions from '@secret-agent/interfaces/ICorePluginCreateOptions';
8
import IBrowserEngine from '@secret-agent/interfaces/IBrowserEngine';
9
import ICorePlugins from '@secret-agent/interfaces/ICorePlugins';
10
11
@CorePluginClassDecorator
12
export default class CorePlugin implements ICorePlugin {
13
public static id: string;
14
public static type: PluginTypes.CorePlugin = PluginTypes.CorePlugin;
15
16
public readonly id: string;
17
18
protected readonly browserEngine: IBrowserEngine;
19
protected readonly plugins: ICorePlugins;
20
protected readonly logger: IBoundLog;
21
22
constructor({ browserEngine, corePlugins, logger }: ICorePluginCreateOptions) {
23
this.id = (this.constructor as ICorePluginClass).id;
24
this.browserEngine = browserEngine;
25
this.plugins = corePlugins;
26
this.logger = logger;
27
}
28
}
29
30