28 lines
665 B
TypeScript
28 lines
665 B
TypeScript
|
|
import { MinPriorityQueue } from '@datastructures-js/priority-queue';
|
||
|
|
import { Arrays } from '../../../browser/tools/Arrays';
|
||
|
|
import { DateHelper } from '../../../browser/date/DateHelper';
|
||
|
|
import { DateMath } from '../../../browser/date/DateMath';
|
||
|
|
|
||
|
|
export class Task
|
||
|
|
{
|
||
|
|
id:string;
|
||
|
|
date:Date;
|
||
|
|
action:()=>void;
|
||
|
|
|
||
|
|
static createIn( duration:number, action:()=>void )
|
||
|
|
{
|
||
|
|
let date = DateMath.fromNowAddSeconds( duration );
|
||
|
|
return Task.createAt( date, action );
|
||
|
|
}
|
||
|
|
|
||
|
|
static createAt( date:Date, action:()=>void )
|
||
|
|
{
|
||
|
|
let task = new Task();
|
||
|
|
|
||
|
|
task.id = crypto.randomUUID();
|
||
|
|
task.action = action;
|
||
|
|
task.date = date;
|
||
|
|
|
||
|
|
return task;
|
||
|
|
}
|
||
|
|
}
|