feat: Convert all app files to JS
This commit is contained in:
10
packages/backend/src/apps/scheduler/common/cron-times.js
Normal file
10
packages/backend/src/apps/scheduler/common/cron-times.js
Normal file
@@ -0,0 +1,10 @@
|
||||
const cronTimes = {
|
||||
everyHour: '0 * * * *',
|
||||
everyHourExcludingWeekends: '0 * * * 1-5',
|
||||
everyDayAt: (hour) => `0 ${hour} * * *`,
|
||||
everyDayExcludingWeekendsAt: (hour) => `0 ${hour} * * 1-5`,
|
||||
everyWeekOnAndAt: (weekday, hour) => `0 ${hour} * * ${weekday}`,
|
||||
everyMonthOnAndAt: (day, hour) => `0 ${hour} ${day} * *`,
|
||||
};
|
||||
|
||||
export default cronTimes;
|
@@ -1,11 +0,0 @@
|
||||
const cronTimes = {
|
||||
everyHour: '0 * * * *',
|
||||
everyHourExcludingWeekends: '0 * * * 1-5',
|
||||
everyDayAt: (hour: number) => `0 ${hour} * * *`,
|
||||
everyDayExcludingWeekendsAt: (hour: number) => `0 ${hour} * * 1-5`,
|
||||
everyWeekOnAndAt: (weekday: number, hour: number) =>
|
||||
`0 ${hour} * * ${weekday}`,
|
||||
everyMonthOnAndAt: (day: number, hour: number) => `0 ${hour} ${day} * *`,
|
||||
};
|
||||
|
||||
export default cronTimes;
|
@@ -1,7 +1,6 @@
|
||||
import { DateTime } from 'luxon';
|
||||
import { IJSONObject } from '@automatisch/types';
|
||||
|
||||
export default function getDateTimeObjectRepresentation(dateTime: DateTime) {
|
||||
export default function getDateTimeObjectRepresentation(dateTime) {
|
||||
const defaults = dateTime.toObject();
|
||||
|
||||
return {
|
||||
@@ -11,5 +10,5 @@ export default function getDateTimeObjectRepresentation(dateTime: DateTime) {
|
||||
pretty_time: dateTime.toLocaleString(DateTime.TIME_WITH_SECONDS),
|
||||
pretty_day_of_week: dateTime.toFormat('cccc'),
|
||||
day_of_week: dateTime.weekday,
|
||||
} as IJSONObject;
|
||||
};
|
||||
}
|
@@ -1,7 +1,7 @@
|
||||
import { DateTime } from 'luxon';
|
||||
import cronParser from 'cron-parser';
|
||||
|
||||
export default function getNextCronDateTime(cronString: string) {
|
||||
export default function getNextCronDateTime(cronString) {
|
||||
const cronDate = cronParser.parseExpression(cronString);
|
||||
const matchingNextCronDateTime = cronDate.next();
|
||||
const matchingNextDateTime = DateTime.fromJSDate(
|
@@ -1,5 +1,5 @@
|
||||
import defineApp from '../../helpers/define-app';
|
||||
import triggers from './triggers';
|
||||
import defineApp from '../../helpers/define-app.js';
|
||||
import triggers from './triggers/index.js';
|
||||
|
||||
export default defineApp({
|
||||
name: 'Scheduler',
|
@@ -1,9 +1,9 @@
|
||||
import { DateTime } from 'luxon';
|
||||
import { IGlobalVariable } from '@automatisch/types';
|
||||
import defineTrigger from '../../../../helpers/define-trigger';
|
||||
import cronTimes from '../../common/cron-times';
|
||||
import getNextCronDateTime from '../../common/get-next-cron-date-time';
|
||||
import getDateTimeObjectRepresentation from '../../common/get-date-time-object';
|
||||
|
||||
import defineTrigger from '../../../../helpers/define-trigger.js';
|
||||
import cronTimes from '../../common/cron-times.js';
|
||||
import getNextCronDateTime from '../../common/get-next-cron-date-time.js';
|
||||
import getDateTimeObjectRepresentation from '../../common/get-date-time-object.js';
|
||||
|
||||
export default defineTrigger({
|
||||
name: 'Every day',
|
||||
@@ -13,7 +13,7 @@ export default defineTrigger({
|
||||
{
|
||||
label: 'Trigger on weekends?',
|
||||
key: 'triggersOnWeekend',
|
||||
type: 'dropdown' as const,
|
||||
type: 'dropdown',
|
||||
description: 'Should this flow trigger on Saturday and Sunday?',
|
||||
required: true,
|
||||
value: true,
|
||||
@@ -32,7 +32,7 @@ export default defineTrigger({
|
||||
{
|
||||
label: 'Time of day',
|
||||
key: 'hour',
|
||||
type: 'dropdown' as const,
|
||||
type: 'dropdown',
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
@@ -137,12 +137,12 @@ export default defineTrigger({
|
||||
},
|
||||
],
|
||||
|
||||
getInterval(parameters: IGlobalVariable['step']['parameters']) {
|
||||
if (parameters.triggersOnWeekend as boolean) {
|
||||
return cronTimes.everyDayAt(parameters.hour as number);
|
||||
getInterval(parameters) {
|
||||
if (parameters.triggersOnWeekend) {
|
||||
return cronTimes.everyDayAt(parameters.hour);
|
||||
}
|
||||
|
||||
return cronTimes.everyDayExcludingWeekendsAt(parameters.hour as number);
|
||||
return cronTimes.everyDayExcludingWeekendsAt(parameters.hour);
|
||||
},
|
||||
|
||||
async run($) {
|
@@ -1,9 +1,9 @@
|
||||
import { DateTime } from 'luxon';
|
||||
import { IGlobalVariable } from '@automatisch/types';
|
||||
import defineTrigger from '../../../../helpers/define-trigger';
|
||||
import cronTimes from '../../common/cron-times';
|
||||
import getNextCronDateTime from '../../common/get-next-cron-date-time';
|
||||
import getDateTimeObjectRepresentation from '../../common/get-date-time-object';
|
||||
|
||||
import defineTrigger from '../../../../helpers/define-trigger.js';
|
||||
import cronTimes from '../../common/cron-times.js';
|
||||
import getNextCronDateTime from '../../common/get-next-cron-date-time.js';
|
||||
import getDateTimeObjectRepresentation from '../../common/get-date-time-object.js';
|
||||
|
||||
export default defineTrigger({
|
||||
name: 'Every hour',
|
||||
@@ -13,7 +13,7 @@ export default defineTrigger({
|
||||
{
|
||||
label: 'Trigger on weekends?',
|
||||
key: 'triggersOnWeekend',
|
||||
type: 'dropdown' as const,
|
||||
type: 'dropdown',
|
||||
description: 'Should this flow trigger on Saturday and Sunday?',
|
||||
required: true,
|
||||
value: true,
|
||||
@@ -31,7 +31,7 @@ export default defineTrigger({
|
||||
},
|
||||
],
|
||||
|
||||
getInterval(parameters: IGlobalVariable['step']['parameters']) {
|
||||
getInterval(parameters) {
|
||||
if (parameters.triggersOnWeekend) {
|
||||
return cronTimes.everyHour;
|
||||
}
|
@@ -1,9 +1,9 @@
|
||||
import { DateTime } from 'luxon';
|
||||
import { IGlobalVariable } from '@automatisch/types';
|
||||
import defineTrigger from '../../../../helpers/define-trigger';
|
||||
import cronTimes from '../../common/cron-times';
|
||||
import getNextCronDateTime from '../../common/get-next-cron-date-time';
|
||||
import getDateTimeObjectRepresentation from '../../common/get-date-time-object';
|
||||
|
||||
import defineTrigger from '../../../../helpers/define-trigger.js';
|
||||
import cronTimes from '../../common/cron-times.js';
|
||||
import getNextCronDateTime from '../../common/get-next-cron-date-time.js';
|
||||
import getDateTimeObjectRepresentation from '../../common/get-date-time-object.js';
|
||||
|
||||
export default defineTrigger({
|
||||
name: 'Every month',
|
||||
@@ -13,7 +13,7 @@ export default defineTrigger({
|
||||
{
|
||||
label: 'Day of the month',
|
||||
key: 'day',
|
||||
type: 'dropdown' as const,
|
||||
type: 'dropdown',
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
@@ -147,7 +147,7 @@ export default defineTrigger({
|
||||
{
|
||||
label: 'Time of day',
|
||||
key: 'hour',
|
||||
type: 'dropdown' as const,
|
||||
type: 'dropdown',
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
@@ -252,10 +252,10 @@ export default defineTrigger({
|
||||
},
|
||||
],
|
||||
|
||||
getInterval(parameters: IGlobalVariable['step']['parameters']) {
|
||||
getInterval(parameters) {
|
||||
const interval = cronTimes.everyMonthOnAndAt(
|
||||
parameters.day as number,
|
||||
parameters.hour as number
|
||||
parameters.day,
|
||||
parameters.hour
|
||||
);
|
||||
|
||||
return interval;
|
@@ -1,9 +1,9 @@
|
||||
import { DateTime } from 'luxon';
|
||||
import { IGlobalVariable } from '@automatisch/types';
|
||||
import defineTrigger from '../../../../helpers/define-trigger';
|
||||
import cronTimes from '../../common/cron-times';
|
||||
import getNextCronDateTime from '../../common/get-next-cron-date-time';
|
||||
import getDateTimeObjectRepresentation from '../../common/get-date-time-object';
|
||||
|
||||
import defineTrigger from '../../../../helpers/define-trigger.js';
|
||||
import cronTimes from '../../common/cron-times.js';
|
||||
import getNextCronDateTime from '../../common/get-next-cron-date-time.js';
|
||||
import getDateTimeObjectRepresentation from '../../common/get-date-time-object.js';
|
||||
|
||||
export default defineTrigger({
|
||||
name: 'Every week',
|
||||
@@ -13,7 +13,7 @@ export default defineTrigger({
|
||||
{
|
||||
label: 'Day of the week',
|
||||
key: 'weekday',
|
||||
type: 'dropdown' as const,
|
||||
type: 'dropdown',
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
@@ -51,7 +51,7 @@ export default defineTrigger({
|
||||
{
|
||||
label: 'Time of day',
|
||||
key: 'hour',
|
||||
type: 'dropdown' as const,
|
||||
type: 'dropdown',
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
@@ -156,10 +156,10 @@ export default defineTrigger({
|
||||
},
|
||||
],
|
||||
|
||||
getInterval(parameters: IGlobalVariable['step']['parameters']) {
|
||||
getInterval(parameters) {
|
||||
const interval = cronTimes.everyWeekOnAndAt(
|
||||
parameters.weekday as number,
|
||||
parameters.hour as number
|
||||
parameters.weekday,
|
||||
parameters.hour
|
||||
);
|
||||
|
||||
return interval;
|
6
packages/backend/src/apps/scheduler/triggers/index.js
Normal file
6
packages/backend/src/apps/scheduler/triggers/index.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import everyHour from './every-hour/index.js';
|
||||
import everyDay from './every-day/index.js';
|
||||
import everyWeek from './every-week/index.js';
|
||||
import everyMonth from './every-month/index.js';
|
||||
|
||||
export default [everyHour, everyDay, everyWeek, everyMonth];
|
@@ -1,6 +0,0 @@
|
||||
import everyHour from './every-hour';
|
||||
import everyDay from './every-day';
|
||||
import everyWeek from './every-week';
|
||||
import everyMonth from './every-month';
|
||||
|
||||
export default [everyHour, everyDay, everyWeek, everyMonth];
|
Reference in New Issue
Block a user