export function reinstallTriggers() { let currentTriggers = ScriptApp.getProjectTriggers() for (let i = 0; i < currentTriggers.length; i++) { ScriptApp.deleteTrigger(currentTriggers[i]) } let ss = SpreadsheetApp.getActive() ScriptApp.newTrigger("onEditHandler").forSpreadsheet(ss).onEdit().create() ScriptApp.newTrigger("processBatchedEdits") .timeBased() .everyMinutes(1) .create() installSalesSyncTrigger() } import { Config } from "./config" export function installSalesSyncTrigger() { const config = new Config() // Valid minute intervals for Apps Script const valid = [1, 5, 10, 15, 30] let freq = config.salesSyncFrequency || 10 if (valid.indexOf(freq) === -1) { console.warn(`Invalid frequency ${freq}. Must be 1, 5, 10, 15, 30. Defaulting to 10.`) freq = 10 } // Delete existing 'checkRecentSales' triggers to avoid duplicates const triggers = ScriptApp.getProjectTriggers() for (const t of triggers) { if (t.getHandlerFunction() === "checkRecentSales") { ScriptApp.deleteTrigger(t) } } ScriptApp.newTrigger("checkRecentSales") .timeBased() .everyMinutes(freq) .create() console.log(`Installed 'checkRecentSales' trigger running every ${freq} minutes.`) }