1 | Object.defineProperty(exports, "__esModule", { value: true });
|
2 | class ActionSubscription {
|
3 | constructor(action) {
|
4 | this.isUnsubscribed = false;
|
5 | this._action = action;
|
6 | }
|
7 | unsubscribe() {
|
8 | if (!this.isUnsubscribed) {
|
9 | this.isUnsubscribed = true;
|
10 | this._action();
|
11 | }
|
12 | }
|
13 | }
|
14 | class DefaultScheduler {
|
15 | get now() {
|
16 | return Date.now();
|
17 | }
|
18 | delay(dueTime) {
|
19 | return new Promise(res => setTimeout(res, dueTime));
|
20 | }
|
21 | schedule(action, dueTime) {
|
22 | const id = setTimeout(() => action(), dueTime);
|
23 | return new ActionSubscription(() => clearTimeout(id));
|
24 | }
|
25 | }
|
26 | exports.DefaultScheduler = DefaultScheduler;
|
27 |
|
28 | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBVUE7SUFJRSxZQUFZLE1BQWtCO1FBSHZCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBSTVCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7Q0FDRjtBQUVEO0lBQ0UsSUFBSSxHQUFHO1FBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWU7UUFDbkIsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFrQixFQUFFLE9BQWU7UUFDMUMsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0MsTUFBTSxDQUFDLElBQUksa0JBQWtCLENBQUMsTUFBTSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0Y7QUFiRCw0Q0FhQyIsImZpbGUiOiJzY2hlZHVsZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICcuL3N1YnNjcmlwdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVyIHtcbiAgcmVhZG9ubHkgbm93OiBudW1iZXI7XG4gIGRlbGF5KHRpbWU6IG51bWJlcik6IFByb21pc2U8dm9pZD47XG4gIHNjaGVkdWxlKFxuICAgIGFjdGlvbjogKCkgPT4gdm9pZCxcbiAgICBkdWVUaW1lOiBudW1iZXIpOiBTdWJzY3JpcHRpb247XG59XG5cbmNsYXNzIEFjdGlvblN1YnNjcmlwdGlvbiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbiB7XG4gIHB1YmxpYyBpc1Vuc3Vic2NyaWJlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9hY3Rpb246ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoYWN0aW9uOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fYWN0aW9uID0gYWN0aW9uO1xuICB9XG5cbiAgdW5zdWJzY3JpYmUoKSB7XG4gICAgaWYgKCF0aGlzLmlzVW5zdWJzY3JpYmVkKSB7XG4gICAgICB0aGlzLmlzVW5zdWJzY3JpYmVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2FjdGlvbigpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGVmYXVsdFNjaGVkdWxlciBpbXBsZW1lbnRzIFNjaGVkdWxlciB7XG4gIGdldCBub3coKSB7XG4gICAgcmV0dXJuIERhdGUubm93KCk7XG4gIH1cblxuICBkZWxheShkdWVUaW1lOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzID0+IHNldFRpbWVvdXQocmVzLCBkdWVUaW1lKSk7XG4gIH1cblxuICBzY2hlZHVsZShhY3Rpb246ICgpID0+IHZvaWQsIGR1ZVRpbWU6IG51bWJlcik6IFN1YnNjcmlwdGlvbiB7XG4gICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IGFjdGlvbigpLCBkdWVUaW1lKTtcbiAgICByZXR1cm4gbmV3IEFjdGlvblN1YnNjcmlwdGlvbigoKSA9PiBjbGVhclRpbWVvdXQoaWQpKTtcbiAgfVxufSJdfQ==
|