fix(notification): scheduled notifications not working (#909)

* fix(notification): scheduled notifications not working

* do not use toJSON since it doesnt work on isolation pattern

* fmt
This commit is contained in:
Lucas Fernandes Nogueira
2024-01-24 13:02:11 -03:00
committed by GitHub
parent 61edbbec0a
commit 8dea78ac7d
11 changed files with 102 additions and 56 deletions
+38 -30
View File
@@ -163,49 +163,57 @@ enum ScheduleEvery {
Second = "second",
}
type ScheduleData =
| {
at: {
class Schedule {
at:
| {
date: Date;
repeating: boolean;
allowWhileIdle: boolean;
};
}
| {
interval: {
}
| undefined;
interval:
| {
interval: ScheduleInterval;
allowWhileIdle: boolean;
};
}
| {
every: {
}
| undefined;
every:
| {
interval: ScheduleEvery;
count: number;
allowWhileIdle: boolean;
};
}
| undefined;
static at(date: Date, repeating = false, allowWhileIdle = false): Schedule {
return {
at: { date, repeating, allowWhileIdle },
interval: undefined,
every: undefined,
};
class Schedule {
schedule: ScheduleData;
private constructor(schedule: ScheduleData) {
this.schedule = schedule;
}
toJSON(): string {
return JSON.stringify(this.schedule);
static interval(
interval: ScheduleInterval,
allowWhileIdle = false,
): Schedule {
return {
at: undefined,
interval: { interval, allowWhileIdle },
every: undefined,
};
}
static at(date: Date, repeating = false, allowWhileIdle = false) {
return new Schedule({ at: { date, repeating, allowWhileIdle } });
}
static interval(interval: ScheduleInterval, allowWhileIdle = false) {
return new Schedule({ interval: { interval, allowWhileIdle } });
}
static every(kind: ScheduleEvery, count: number, allowWhileIdle = false) {
return new Schedule({ every: { interval: kind, count, allowWhileIdle } });
static every(
kind: ScheduleEvery,
count: number,
allowWhileIdle = false,
): Schedule {
return {
at: undefined,
interval: undefined,
every: { interval: kind, count, allowWhileIdle },
};
}
}