feat: Convert all app files to JS

This commit is contained in:
Faruk AYDIN
2024-01-05 17:44:21 +01:00
parent b95478b635
commit 43dba351c3
1030 changed files with 5114 additions and 6436 deletions

View 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;

View File

@@ -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;

View File

@@ -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;
};
}

View File

@@ -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(

View File

@@ -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',

View File

@@ -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($) {

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;

View 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];

View File

@@ -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];