|
@@ -12,6 +12,8 @@ chrome.runtime.onInstalled.addListener((details) => {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
|
|
+const executingWorkflow = {};
|
|
|
|
+
|
|
function getWorkflow(workflowId) {
|
|
function getWorkflow(workflowId) {
|
|
return new Promise((resolve) => {
|
|
return new Promise((resolve) => {
|
|
browser.storage.local.get('workflows').then(({ workflows }) => {
|
|
browser.storage.local.get('workflows').then(({ workflows }) => {
|
|
@@ -23,10 +25,15 @@ function getWorkflow(workflowId) {
|
|
}
|
|
}
|
|
function executeWorkflow(workflow) {
|
|
function executeWorkflow(workflow) {
|
|
try {
|
|
try {
|
|
|
|
+ console.log(executingWorkflow[workflow.id]);
|
|
|
|
+ if (executingWorkflow[workflow.id]) return false;
|
|
|
|
+
|
|
const engine = new WorkflowEngine(workflow);
|
|
const engine = new WorkflowEngine(workflow);
|
|
console.log('execute');
|
|
console.log('execute');
|
|
engine.init();
|
|
engine.init();
|
|
|
|
|
|
|
|
+ executingWorkflow[workflow.id] = engine;
|
|
|
|
+
|
|
return true;
|
|
return true;
|
|
} catch (error) {
|
|
} catch (error) {
|
|
console.error(error);
|
|
console.error(error);
|
|
@@ -36,9 +43,9 @@ function executeWorkflow(workflow) {
|
|
|
|
|
|
browser.tabs.onUpdated.addListener(async (tabId, changeInfo, tab) => {
|
|
browser.tabs.onUpdated.addListener(async (tabId, changeInfo, tab) => {
|
|
if (changeInfo.status === 'complete') {
|
|
if (changeInfo.status === 'complete') {
|
|
- const visitWebTriggers =
|
|
|
|
- (await browser.storage.local.get('visitWebTriggers'))?.visitWebTriggers ??
|
|
|
|
- [];
|
|
|
|
|
|
+ const { visitWebTriggers = [] } = await browser.storage.local.get(
|
|
|
|
+ 'visitWebTriggers'
|
|
|
|
+ );
|
|
const trigger = visitWebTriggers.find(({ url, isRegex }) => {
|
|
const trigger = visitWebTriggers.find(({ url, isRegex }) => {
|
|
if (url.trim() === '') return false;
|
|
if (url.trim() === '') return false;
|
|
|
|
|