n8n-nodes-base
Version:
Base nodes of n8n
61 lines • 2.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Cron = void 0;
const n8n_workflow_1 = require("n8n-workflow");
class Cron {
description = {
displayName: 'Cron',
name: 'cron',
icon: 'fa:clock',
group: ['trigger', 'schedule'],
version: 1,
hidden: true,
description: 'Triggers the workflow at a specific time',
eventTriggerDescription: '',
activationMessage: 'Your cron trigger will now trigger executions on the schedule you have defined.',
defaults: {
name: 'Cron',
color: '#29a568',
},
inputs: [],
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
properties: [
{
displayName: "This workflow will run on the schedule you define here once you publish it.<br><br>For testing, you can also trigger it manually: by going back to the canvas and clicking 'execute workflow'",
name: 'notice',
type: 'notice',
default: '',
},
{
displayName: 'Trigger Times',
name: 'triggerTimes',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
multipleValueButtonText: 'Add Time',
},
default: {},
description: 'Triggers for the workflow',
placeholder: 'Add Cron Time',
options: n8n_workflow_1.NodeHelpers.cronNodeOptions,
},
],
};
async trigger() {
const triggerTimes = this.getNodeParameter('triggerTimes');
// Get all the trigger times
const expressions = (triggerTimes.item || []).map(n8n_workflow_1.toCronExpression);
// The trigger function to execute when the cron-time got reached
// or when manually triggered
const executeTrigger = () => {
this.emit([this.helpers.returnJsonArray([{}])]);
};
// Register the cron-jobs
expressions.forEach((expression) => this.helpers.registerCron({ expression }, executeTrigger));
return {
manualTriggerFunction: async () => executeTrigger(),
};
}
}
exports.Cron = Cron;
//# sourceMappingURL=Cron.node.js.map