-
Notifications
You must be signed in to change notification settings - Fork 1.9k
/
Copy pathmessage-listener.js
27 lines (21 loc) · 988 Bytes
/
message-listener.js
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
import BrowserAPIEventHandler from '@/service/browser-api/BrowserAPIEventHandler';
import { MessageListener } from '@/utils/message';
import WorkflowManager from '@/workflowEngine/WorkflowManager';
import Browser from 'webextension-polyfill';
const messageListener = new MessageListener('offscreen');
Browser.runtime.onMessage.addListener(messageListener.listener);
messageListener.on('workflow:execute', (data) => {
WorkflowManager.instance.execute(data.workflowData, data.options);
});
messageListener.on('workflow:stop', (stateId) => {
WorkflowManager.instance.stopExecution(stateId);
});
messageListener.on('workflow:resume', ({ id, nextBlock }) => {
WorkflowManager.instance.resumeExecution(id, nextBlock);
});
messageListener.on('workflow:update', ({ id, data }) => {
WorkflowManager.instance.updateExecution(id, data);
});
messageListener.on(BrowserAPIEventHandler.RuntimeEvents.ON_EVENT, (event) =>
BrowserAPIEventHandler.instance.onBrowserEventListener(event)
);