worker-timers-worker 8.0.10 → 9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es2019/factories/clear-timer.d.ts +3 -0
- package/build/es2019/factories/clear-timer.d.ts.map +1 -0
- package/build/es2019/factories/clear-timer.js +12 -0
- package/build/es2019/factories/clear-timer.js.map +1 -0
- package/build/es2019/factories/set-timer.d.ts +5 -0
- package/build/es2019/factories/set-timer.d.ts.map +1 -0
- package/build/es2019/factories/set-timer.js +10 -0
- package/build/es2019/factories/set-timer.js.map +1 -0
- package/build/es2019/functions/compute-delay-and-expected-callback-time.d.ts +5 -0
- package/build/es2019/functions/compute-delay-and-expected-callback-time.d.ts.map +1 -0
- package/build/es2019/functions/compute-delay-and-expected-callback-time.js +7 -0
- package/build/es2019/functions/compute-delay-and-expected-callback-time.js.map +1 -0
- package/build/es2019/functions/set-timeout-callback.d.ts +3 -0
- package/build/es2019/functions/set-timeout-callback.d.ts.map +1 -0
- package/build/es2019/functions/set-timeout-callback.js +14 -0
- package/build/es2019/functions/set-timeout-callback.js.map +1 -0
- package/build/es2019/interfaces/index.d.ts +1 -8
- package/build/es2019/interfaces/index.d.ts.map +1 -1
- package/build/es2019/interfaces/index.js +1 -8
- package/build/es2019/interfaces/index.js.map +1 -1
- package/build/es2019/interfaces/worker-timers-worker-custom-definition.d.ts +25 -0
- package/build/es2019/interfaces/worker-timers-worker-custom-definition.d.ts.map +1 -0
- package/build/es2019/interfaces/worker-timers-worker-custom-definition.js +2 -0
- package/build/es2019/interfaces/worker-timers-worker-custom-definition.js.map +1 -0
- package/build/es2019/module.d.ts.map +1 -1
- package/build/es2019/module.js +17 -39
- package/build/es2019/module.js.map +1 -1
- package/build/es2019/types/index.d.ts +2 -2
- package/build/es2019/types/index.d.ts.map +1 -1
- package/build/es2019/types/index.js +2 -2
- package/build/es2019/types/index.js.map +1 -1
- package/build/es2019/types/resolve-set-response-result-promise.d.ts +3 -0
- package/build/es2019/types/resolve-set-response-result-promise.d.ts.map +1 -0
- package/build/es2019/types/resolve-set-response-result-promise.js +2 -0
- package/build/es2019/types/resolve-set-response-result-promise.js.map +1 -0
- package/build/es2019/types/worker-timers-worker-definition.d.ts +4 -0
- package/build/es2019/types/worker-timers-worker-definition.d.ts.map +1 -0
- package/build/es2019/types/worker-timers-worker-definition.js +2 -0
- package/build/es2019/types/worker-timers-worker-definition.js.map +1 -0
- package/build/es5/bundle.js +91 -90
- package/package.json +16 -15
- package/src/factories/clear-timer.ts +18 -0
- package/src/factories/set-timer.ts +20 -0
- package/src/functions/compute-delay-and-expected-callback-time.ts +7 -0
- package/src/functions/set-timeout-callback.ts +20 -0
- package/src/interfaces/index.ts +1 -8
- package/src/interfaces/worker-timers-worker-custom-definition.ts +32 -0
- package/src/module.ts +19 -39
- package/src/types/index.ts +2 -2
- package/src/types/resolve-set-response-result-promise.ts +5 -0
- package/src/types/worker-timers-worker-definition.ts +4 -0
- package/build/es2019/helpers/timer.d.ts +0 -5
- package/build/es2019/helpers/timer.d.ts.map +0 -1
- package/build/es2019/helpers/timer.js +0 -45
- package/build/es2019/helpers/timer.js.map +0 -1
- package/build/es2019/interfaces/broker-event.d.ts +0 -5
- package/build/es2019/interfaces/broker-event.d.ts.map +0 -1
- package/build/es2019/interfaces/broker-event.js +0 -2
- package/build/es2019/interfaces/broker-event.js.map +0 -1
- package/build/es2019/interfaces/call-notification.d.ts +0 -10
- package/build/es2019/interfaces/call-notification.d.ts.map +0 -1
- package/build/es2019/interfaces/call-notification.js +0 -2
- package/build/es2019/interfaces/call-notification.js.map +0 -1
- package/build/es2019/interfaces/clear-request.d.ts +0 -10
- package/build/es2019/interfaces/clear-request.d.ts.map +0 -1
- package/build/es2019/interfaces/clear-request.js +0 -2
- package/build/es2019/interfaces/clear-request.js.map +0 -1
- package/build/es2019/interfaces/clear-response.d.ts +0 -5
- package/build/es2019/interfaces/clear-response.d.ts.map +0 -1
- package/build/es2019/interfaces/clear-response.js +0 -2
- package/build/es2019/interfaces/clear-response.js.map +0 -1
- package/build/es2019/interfaces/error-notification.d.ts +0 -8
- package/build/es2019/interfaces/error-notification.d.ts.map +0 -1
- package/build/es2019/interfaces/error-notification.js +0 -2
- package/build/es2019/interfaces/error-notification.js.map +0 -1
- package/build/es2019/interfaces/error-response.d.ts +0 -8
- package/build/es2019/interfaces/error-response.d.ts.map +0 -1
- package/build/es2019/interfaces/error-response.js +0 -2
- package/build/es2019/interfaces/error-response.js.map +0 -1
- package/build/es2019/interfaces/set-notification.d.ts +0 -12
- package/build/es2019/interfaces/set-notification.d.ts.map +0 -1
- package/build/es2019/interfaces/set-notification.js +0 -2
- package/build/es2019/interfaces/set-notification.js.map +0 -1
- package/build/es2019/interfaces/worker-event.d.ts +0 -5
- package/build/es2019/interfaces/worker-event.d.ts.map +0 -1
- package/build/es2019/interfaces/worker-event.js +0 -2
- package/build/es2019/interfaces/worker-event.js.map +0 -1
- package/build/es2019/types/broker-message.d.ts +0 -3
- package/build/es2019/types/broker-message.d.ts.map +0 -1
- package/build/es2019/types/broker-message.js +0 -2
- package/build/es2019/types/broker-message.js.map +0 -1
- package/build/es2019/types/worker-message.d.ts +0 -3
- package/build/es2019/types/worker-message.d.ts.map +0 -1
- package/build/es2019/types/worker-message.js +0 -2
- package/build/es2019/types/worker-message.js.map +0 -1
- package/src/helpers/timer.ts +0 -67
- package/src/interfaces/broker-event.ts +0 -5
- package/src/interfaces/call-notification.ts +0 -13
- package/src/interfaces/clear-request.ts +0 -13
- package/src/interfaces/clear-response.ts +0 -5
- package/src/interfaces/error-notification.ts +0 -9
- package/src/interfaces/error-response.ts +0 -9
- package/src/interfaces/set-notification.ts +0 -17
- package/src/interfaces/worker-event.ts +0 -5
- package/src/types/broker-message.ts +0 -3
- package/src/types/worker-message.ts +0 -3
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TResolveSetResponseResultPromise } from '../types';
|
|
2
|
+
|
|
3
|
+
export const createClearTimer = (identifiersAndResolvers: Map<number, [number, TResolveSetResponseResultPromise]>) => (timerId: number) => {
|
|
4
|
+
const identifiersAndResolver = identifiersAndResolvers.get(timerId);
|
|
5
|
+
|
|
6
|
+
if (identifiersAndResolver === undefined) {
|
|
7
|
+
return Promise.resolve(false);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const [identifier, resolveSetResponseResultPromise] = identifiersAndResolver;
|
|
11
|
+
|
|
12
|
+
clearTimeout(identifier);
|
|
13
|
+
identifiersAndResolvers.delete(timerId);
|
|
14
|
+
|
|
15
|
+
resolveSetResponseResultPromise(false);
|
|
16
|
+
|
|
17
|
+
return Promise.resolve(true);
|
|
18
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { computeDelayAndExpectedCallbackTime as computeDelayAndExpectedCallbackTimeFunction } from '../functions/compute-delay-and-expected-callback-time';
|
|
2
|
+
import type { setTimeoutCallback as setTimeoutCallbackFunction } from '../functions/set-timeout-callback';
|
|
3
|
+
import { TResolveSetResponseResultPromise } from '../types';
|
|
4
|
+
|
|
5
|
+
export const createSetTimer =
|
|
6
|
+
(
|
|
7
|
+
computeDelayAndExpectedCallbackTime: typeof computeDelayAndExpectedCallbackTimeFunction,
|
|
8
|
+
identifiersAndResolvers: Map<number, [number, TResolveSetResponseResultPromise]>,
|
|
9
|
+
setTimeoutCallback: typeof setTimeoutCallbackFunction
|
|
10
|
+
) =>
|
|
11
|
+
(delay: number, nowAndTimeOrigin: number, timerId: number) => {
|
|
12
|
+
const { expected, remainingDelay } = computeDelayAndExpectedCallbackTime(delay, nowAndTimeOrigin);
|
|
13
|
+
|
|
14
|
+
return new Promise((resolve) => {
|
|
15
|
+
identifiersAndResolvers.set(timerId, [
|
|
16
|
+
setTimeout(setTimeoutCallback, remainingDelay, expected, identifiersAndResolvers, resolve, timerId),
|
|
17
|
+
resolve
|
|
18
|
+
]);
|
|
19
|
+
});
|
|
20
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const computeDelayAndExpectedCallbackTime = (delay: number, nowAndTimeOrigin: number) => {
|
|
2
|
+
const now = performance.now();
|
|
3
|
+
const remainingDelay = delay + nowAndTimeOrigin - now - performance.timeOrigin;
|
|
4
|
+
const expected = now + remainingDelay;
|
|
5
|
+
|
|
6
|
+
return { expected, remainingDelay };
|
|
7
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TResolveSetResponseResultPromise } from '../types';
|
|
2
|
+
|
|
3
|
+
export const setTimeoutCallback = (
|
|
4
|
+
expected: number,
|
|
5
|
+
identifiersAndResolvers: Map<number, [number, TResolveSetResponseResultPromise]>,
|
|
6
|
+
resolveSetResponseResultPromise: TResolveSetResponseResultPromise,
|
|
7
|
+
timerId: number
|
|
8
|
+
) => {
|
|
9
|
+
const remainingDelay = expected - performance.now();
|
|
10
|
+
|
|
11
|
+
if (remainingDelay > 0) {
|
|
12
|
+
identifiersAndResolvers.set(timerId, [
|
|
13
|
+
setTimeout(setTimeoutCallback, remainingDelay, expected, identifiersAndResolvers, resolveSetResponseResultPromise, timerId),
|
|
14
|
+
resolveSetResponseResultPromise
|
|
15
|
+
]);
|
|
16
|
+
} else {
|
|
17
|
+
identifiersAndResolvers.delete(timerId);
|
|
18
|
+
resolveSetResponseResultPromise(true);
|
|
19
|
+
}
|
|
20
|
+
};
|
package/src/interfaces/index.ts
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './call-notification';
|
|
3
|
-
export * from './clear-request';
|
|
4
|
-
export * from './clear-response';
|
|
5
|
-
export * from './error-notification';
|
|
6
|
-
export * from './error-response';
|
|
7
|
-
export * from './set-notification';
|
|
8
|
-
export * from './worker-event';
|
|
1
|
+
export * from './worker-timers-worker-custom-definition';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IWorkerDefinition } from 'worker-factory';
|
|
2
|
+
import { TTimerType } from '../types';
|
|
3
|
+
|
|
4
|
+
export interface IWorkerTimersWorkerCustomDefinition extends IWorkerDefinition {
|
|
5
|
+
clear: {
|
|
6
|
+
params: {
|
|
7
|
+
timerId: number;
|
|
8
|
+
|
|
9
|
+
timerType: TTimerType;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
response: {
|
|
13
|
+
result: boolean;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
set: {
|
|
18
|
+
params: {
|
|
19
|
+
delay: number;
|
|
20
|
+
|
|
21
|
+
now: number;
|
|
22
|
+
|
|
23
|
+
timerId: number;
|
|
24
|
+
|
|
25
|
+
timerType: TTimerType;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
response: {
|
|
29
|
+
result: boolean;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}
|
package/src/module.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { TWorkerImplementation, createWorker } from 'worker-factory';
|
|
2
|
+
import { createClearTimer } from './factories/clear-timer';
|
|
3
|
+
import { createSetTimer } from './factories/set-timer';
|
|
4
|
+
import { computeDelayAndExpectedCallbackTime } from './functions/compute-delay-and-expected-callback-time';
|
|
5
|
+
import { setTimeoutCallback } from './functions/set-timeout-callback';
|
|
6
|
+
import { IWorkerTimersWorkerCustomDefinition } from './interfaces';
|
|
7
|
+
import { TResolveSetResponseResultPromise } from './types';
|
|
3
8
|
|
|
4
9
|
/*
|
|
5
10
|
* @todo Explicitly referencing the barrel file seems to be necessary when enabling the
|
|
@@ -8,43 +13,18 @@ import { IBrokerEvent, IClearResponse, IErrorNotification, IErrorResponse } from
|
|
|
8
13
|
export * from './interfaces/index';
|
|
9
14
|
export * from './types/index';
|
|
10
15
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} = data;
|
|
16
|
+
const intervalIdentifiersAndResolvers: Map<number, [number, TResolveSetResponseResultPromise]> = new Map();
|
|
17
|
+
const clearInterval = createClearTimer(intervalIdentifiersAndResolvers);
|
|
18
|
+
const timeoutIdentifiersAndResolvers: Map<number, [number, TResolveSetResponseResultPromise]> = new Map();
|
|
19
|
+
const clearTimeout = createClearTimer(timeoutIdentifiersAndResolvers);
|
|
20
|
+
const setInterval = createSetTimer(computeDelayAndExpectedCallbackTime, intervalIdentifiersAndResolvers, setTimeoutCallback);
|
|
21
|
+
const setTimeout = createSetTimer(computeDelayAndExpectedCallbackTime, timeoutIdentifiersAndResolvers, setTimeoutCallback);
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
} else if (data.method === 'set') {
|
|
27
|
-
const {
|
|
28
|
-
params: { delay, now, timerId, timerType }
|
|
29
|
-
} = data;
|
|
30
|
-
|
|
31
|
-
if (timerType === 'interval') {
|
|
32
|
-
scheduleInterval(delay, timerId, now);
|
|
33
|
-
} else if (timerType === 'timeout') {
|
|
34
|
-
scheduleTimeout(delay, timerId, now);
|
|
35
|
-
} else {
|
|
36
|
-
throw new Error(`The given type "${timerType}" is not supported`);
|
|
37
|
-
}
|
|
38
|
-
} else {
|
|
39
|
-
throw new Error(`The given method "${(<any>data).method}" is not supported`);
|
|
40
|
-
}
|
|
41
|
-
} catch (err) {
|
|
42
|
-
postMessage(<IErrorNotification | IErrorResponse>{
|
|
43
|
-
error: {
|
|
44
|
-
message: err.message
|
|
45
|
-
},
|
|
46
|
-
id: data.id,
|
|
47
|
-
result: null
|
|
48
|
-
});
|
|
23
|
+
createWorker<IWorkerTimersWorkerCustomDefinition>(self, <TWorkerImplementation<IWorkerTimersWorkerCustomDefinition>>{
|
|
24
|
+
clear: async ({ timerId, timerType }) => {
|
|
25
|
+
return { result: await (timerType === 'interval' ? clearInterval(timerId) : clearTimeout(timerId)) };
|
|
26
|
+
},
|
|
27
|
+
set: async ({ delay, now, timerId, timerType }) => {
|
|
28
|
+
return { result: await (timerType === 'interval' ? setInterval : setTimeout)(delay, now, timerId) };
|
|
49
29
|
}
|
|
50
30
|
});
|
package/src/types/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './resolve-set-response-result-promise';
|
|
2
2
|
export * from './timer-type';
|
|
3
|
-
export * from './worker-
|
|
3
|
+
export * from './worker-timers-worker-definition';
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare const clearScheduledInterval: (timerId: number) => boolean;
|
|
2
|
-
export declare const clearScheduledTimeout: (timerId: number) => boolean;
|
|
3
|
-
export declare const scheduleInterval: (delay: number, timerId: number, nowAndTimeOrigin: number) => void;
|
|
4
|
-
export declare const scheduleTimeout: (delay: number, timerId: number, nowAndTimeOrigin: number) => void;
|
|
5
|
-
//# sourceMappingURL=timer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../../src/helpers/timer.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB,YAAa,MAAM,YAWrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,YAAa,MAAM,YAWpD,CAAC;AAqBF,eAAO,MAAM,gBAAgB,UAAW,MAAM,WAAW,MAAM,oBAAoB,MAAM,SAOxF,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,MAAM,WAAW,MAAM,oBAAoB,MAAM,SAOvF,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
const scheduledIntervalIdentifiers = new Map();
|
|
2
|
-
const scheduledTimeoutIdentifiers = new Map();
|
|
3
|
-
export const clearScheduledInterval = (timerId) => {
|
|
4
|
-
const identifier = scheduledIntervalIdentifiers.get(timerId);
|
|
5
|
-
if (identifier === undefined) {
|
|
6
|
-
return false;
|
|
7
|
-
}
|
|
8
|
-
clearTimeout(identifier);
|
|
9
|
-
scheduledIntervalIdentifiers.delete(timerId);
|
|
10
|
-
return true;
|
|
11
|
-
};
|
|
12
|
-
export const clearScheduledTimeout = (timerId) => {
|
|
13
|
-
const identifier = scheduledTimeoutIdentifiers.get(timerId);
|
|
14
|
-
if (identifier === undefined) {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
clearTimeout(identifier);
|
|
18
|
-
scheduledTimeoutIdentifiers.delete(timerId);
|
|
19
|
-
return true;
|
|
20
|
-
};
|
|
21
|
-
const computeDelayAndExpectedCallbackTime = (delay, nowAndTimeOrigin) => {
|
|
22
|
-
const now = performance.now();
|
|
23
|
-
const remainingDelay = delay + nowAndTimeOrigin - now - performance.timeOrigin;
|
|
24
|
-
const expected = now + remainingDelay;
|
|
25
|
-
return { expected, remainingDelay };
|
|
26
|
-
};
|
|
27
|
-
const setTimeoutCallback = (identifiers, timerId, expected, timerType) => {
|
|
28
|
-
const remainingDelay = expected - performance.now();
|
|
29
|
-
if (remainingDelay > 0) {
|
|
30
|
-
identifiers.set(timerId, setTimeout(setTimeoutCallback, remainingDelay, identifiers, timerId, expected, timerType));
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
identifiers.delete(timerId);
|
|
34
|
-
postMessage({ id: null, method: 'call', params: { timerId, timerType } });
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
export const scheduleInterval = (delay, timerId, nowAndTimeOrigin) => {
|
|
38
|
-
const { expected, remainingDelay } = computeDelayAndExpectedCallbackTime(delay, nowAndTimeOrigin);
|
|
39
|
-
scheduledIntervalIdentifiers.set(timerId, setTimeout(setTimeoutCallback, remainingDelay, scheduledIntervalIdentifiers, timerId, expected, 'interval'));
|
|
40
|
-
};
|
|
41
|
-
export const scheduleTimeout = (delay, timerId, nowAndTimeOrigin) => {
|
|
42
|
-
const { expected, remainingDelay } = computeDelayAndExpectedCallbackTime(delay, nowAndTimeOrigin);
|
|
43
|
-
scheduledTimeoutIdentifiers.set(timerId, setTimeout(setTimeoutCallback, remainingDelay, scheduledTimeoutIdentifiers, timerId, expected, 'timeout'));
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=timer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timer.js","sourceRoot":"","sources":["../../../src/helpers/timer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"broker-event.d.ts","sourceRoot":"","sources":["../../../src/interfaces/broker-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,YAAa,SAAQ,KAAK;IACvC,IAAI,EAAE,cAAc,CAAC;CACxB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"broker-event.js","sourceRoot":"","sources":["../../../src/interfaces/broker-event.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"call-notification.d.ts","sourceRoot":"","sources":["../../../src/interfaces/call-notification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,IAAI,CAAC;IAET,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAEhB,SAAS,EAAE,UAAU,CAAC;KACzB,CAAC;CACL"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"call-notification.js","sourceRoot":"","sources":["../../../src/interfaces/call-notification.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clear-request.d.ts","sourceRoot":"","sources":["../../../src/interfaces/clear-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,EAAE,OAAO,CAAC;IAEhB,MAAM,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAEhB,SAAS,EAAE,UAAU,CAAC;KACzB,CAAC;CACL"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clear-request.js","sourceRoot":"","sources":["../../../src/interfaces/clear-request.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clear-response.d.ts","sourceRoot":"","sources":["../../../src/interfaces/clear-response.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clear-response.js","sourceRoot":"","sources":["../../../src/interfaces/clear-response.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-notification.d.ts","sourceRoot":"","sources":["../../../src/interfaces/error-notification.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,EAAE,EAAE,IAAI,CAAC;IAET,MAAM,EAAE,IAAI,CAAC;CAChB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-notification.js","sourceRoot":"","sources":["../../../src/interfaces/error-notification.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-response.d.ts","sourceRoot":"","sources":["../../../src/interfaces/error-response.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,EAAE,IAAI,CAAC;CAChB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-response.js","sourceRoot":"","sources":["../../../src/interfaces/error-response.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set-notification.d.ts","sourceRoot":"","sources":["../../../src/interfaces/set-notification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,IAAI,CAAC;IAET,MAAM,EAAE,KAAK,CAAC;IAEd,MAAM,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QAEd,GAAG,EAAE,MAAM,CAAC;QAEZ,OAAO,EAAE,MAAM,CAAC;QAEhB,SAAS,EAAE,UAAU,CAAC;KACzB,CAAC;CACL"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set-notification.js","sourceRoot":"","sources":["../../../src/interfaces/set-notification.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-event.d.ts","sourceRoot":"","sources":["../../../src/interfaces/worker-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,YAAa,SAAQ,KAAK;IACvC,IAAI,EAAE,cAAc,CAAC;CACxB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-event.js","sourceRoot":"","sources":["../../../src/interfaces/worker-event.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"broker-message.d.ts","sourceRoot":"","sources":["../../../src/types/broker-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"broker-message.js","sourceRoot":"","sources":["../../../src/types/broker-message.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-message.d.ts","sourceRoot":"","sources":["../../../src/types/worker-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtG,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,kBAAkB,GAAG,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-message.js","sourceRoot":"","sources":["../../../src/types/worker-message.ts"],"names":[],"mappings":""}
|
package/src/helpers/timer.ts
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { ICallNotification } from '../interfaces';
|
|
2
|
-
|
|
3
|
-
const scheduledIntervalIdentifiers: Map<number, number> = new Map();
|
|
4
|
-
const scheduledTimeoutIdentifiers: Map<number, number> = new Map();
|
|
5
|
-
|
|
6
|
-
export const clearScheduledInterval = (timerId: number) => {
|
|
7
|
-
const identifier = scheduledIntervalIdentifiers.get(timerId);
|
|
8
|
-
|
|
9
|
-
if (identifier === undefined) {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
clearTimeout(identifier);
|
|
14
|
-
scheduledIntervalIdentifiers.delete(timerId);
|
|
15
|
-
|
|
16
|
-
return true;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export const clearScheduledTimeout = (timerId: number) => {
|
|
20
|
-
const identifier = scheduledTimeoutIdentifiers.get(timerId);
|
|
21
|
-
|
|
22
|
-
if (identifier === undefined) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
clearTimeout(identifier);
|
|
27
|
-
scheduledTimeoutIdentifiers.delete(timerId);
|
|
28
|
-
|
|
29
|
-
return true;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const computeDelayAndExpectedCallbackTime = (delay: number, nowAndTimeOrigin: number) => {
|
|
33
|
-
const now = performance.now();
|
|
34
|
-
const remainingDelay = delay + nowAndTimeOrigin - now - performance.timeOrigin;
|
|
35
|
-
const expected = now + remainingDelay;
|
|
36
|
-
|
|
37
|
-
return { expected, remainingDelay };
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const setTimeoutCallback = (identifiers: Map<number, number>, timerId: number, expected: number, timerType: string) => {
|
|
41
|
-
const remainingDelay = expected - performance.now();
|
|
42
|
-
|
|
43
|
-
if (remainingDelay > 0) {
|
|
44
|
-
identifiers.set(timerId, setTimeout(setTimeoutCallback, remainingDelay, identifiers, timerId, expected, timerType));
|
|
45
|
-
} else {
|
|
46
|
-
identifiers.delete(timerId);
|
|
47
|
-
postMessage(<ICallNotification>{ id: null, method: 'call', params: { timerId, timerType } });
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
export const scheduleInterval = (delay: number, timerId: number, nowAndTimeOrigin: number) => {
|
|
52
|
-
const { expected, remainingDelay } = computeDelayAndExpectedCallbackTime(delay, nowAndTimeOrigin);
|
|
53
|
-
|
|
54
|
-
scheduledIntervalIdentifiers.set(
|
|
55
|
-
timerId,
|
|
56
|
-
setTimeout(setTimeoutCallback, remainingDelay, scheduledIntervalIdentifiers, timerId, expected, 'interval')
|
|
57
|
-
);
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
export const scheduleTimeout = (delay: number, timerId: number, nowAndTimeOrigin: number) => {
|
|
61
|
-
const { expected, remainingDelay } = computeDelayAndExpectedCallbackTime(delay, nowAndTimeOrigin);
|
|
62
|
-
|
|
63
|
-
scheduledTimeoutIdentifiers.set(
|
|
64
|
-
timerId,
|
|
65
|
-
setTimeout(setTimeoutCallback, remainingDelay, scheduledTimeoutIdentifiers, timerId, expected, 'timeout')
|
|
66
|
-
);
|
|
67
|
-
};
|