worker-timers-broker 6.1.8 → 7.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/guards/clear-response.js +1 -1
- package/build/es2019/guards/clear-response.js.map +1 -1
- package/build/es2019/module.d.ts.map +1 -1
- package/build/es2019/module.js +31 -27
- package/build/es2019/module.js.map +1 -1
- package/build/es5/bundle.js +44 -38
- package/package.json +7 -7
- package/src/guards/clear-response.ts +1 -1
- package/src/module.ts +33 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-response.js","sourceRoot":"","sources":["../../../src/guards/clear-response.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAuB,EAA6B,EAAE;IAClF,
|
|
1
|
+
{"version":3,"file":"clear-response.js","sourceRoot":"","sources":["../../../src/guards/clear-response.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAuB,EAA6B,EAAE;IAClF,OAAO,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAwB,OAAQ,CAAC,MAAM,KAAK,SAAS,CAAC;AACnG,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,IAAI,QAAS,MAAM;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,IAAI,QAAS,MAAM;6BAqFI,MAAM;4BAeP,MAAM;wBAeV,QAAQ;uBAmCT,QAAQ;CAyBrC,CAAC"}
|
package/build/es2019/module.js
CHANGED
|
@@ -12,6 +12,9 @@ export const load = (url) => {
|
|
|
12
12
|
const { params: { timerId, timerType } } = data;
|
|
13
13
|
if (timerType === 'interval') {
|
|
14
14
|
const idOrFunc = scheduledIntervalFunctions.get(timerId);
|
|
15
|
+
if (typeof idOrFunc === undefined) {
|
|
16
|
+
throw new Error('The timer is in an undefined state.');
|
|
17
|
+
}
|
|
15
18
|
if (typeof idOrFunc === 'number') {
|
|
16
19
|
const timerIdAndTimerType = unrespondedRequests.get(idOrFunc);
|
|
17
20
|
if (timerIdAndTimerType === undefined ||
|
|
@@ -20,15 +23,15 @@ export const load = (url) => {
|
|
|
20
23
|
throw new Error('The timer is in an undefined state.');
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
|
-
else if (typeof idOrFunc
|
|
26
|
+
else if (typeof idOrFunc === 'function') {
|
|
24
27
|
idOrFunc();
|
|
25
28
|
}
|
|
26
|
-
else {
|
|
27
|
-
throw new Error('The timer is in an undefined state.');
|
|
28
|
-
}
|
|
29
29
|
}
|
|
30
30
|
else if (timerType === 'timeout') {
|
|
31
31
|
const idOrFunc = scheduledTimeoutFunctions.get(timerId);
|
|
32
|
+
if (typeof idOrFunc === undefined) {
|
|
33
|
+
throw new Error('The timer is in an undefined state.');
|
|
34
|
+
}
|
|
32
35
|
if (typeof idOrFunc === 'number') {
|
|
33
36
|
const timerIdAndTimerType = unrespondedRequests.get(idOrFunc);
|
|
34
37
|
if (timerIdAndTimerType === undefined ||
|
|
@@ -37,14 +40,11 @@ export const load = (url) => {
|
|
|
37
40
|
throw new Error('The timer is in an undefined state.');
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
|
-
else if (typeof idOrFunc
|
|
43
|
+
else if (typeof idOrFunc === 'function') {
|
|
41
44
|
idOrFunc();
|
|
42
45
|
// A timeout can be savely deleted because it is only called once.
|
|
43
46
|
scheduledTimeoutFunctions.delete(timerId);
|
|
44
47
|
}
|
|
45
|
-
else {
|
|
46
|
-
throw new Error('The timer is in an undefined state.');
|
|
47
|
-
}
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
else if (isClearResponse(data)) {
|
|
@@ -68,24 +68,28 @@ export const load = (url) => {
|
|
|
68
68
|
}
|
|
69
69
|
});
|
|
70
70
|
const clearInterval = (timerId) => {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
if (typeof scheduledIntervalFunctions.get(timerId) === 'function') {
|
|
72
|
+
const id = generateUniqueNumber(unrespondedRequests);
|
|
73
|
+
unrespondedRequests.set(id, { timerId, timerType: 'interval' });
|
|
74
|
+
scheduledIntervalFunctions.set(timerId, id);
|
|
75
|
+
worker.postMessage({
|
|
76
|
+
id,
|
|
77
|
+
method: 'clear',
|
|
78
|
+
params: { timerId, timerType: 'interval' }
|
|
79
|
+
});
|
|
80
|
+
}
|
|
79
81
|
};
|
|
80
82
|
const clearTimeout = (timerId) => {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
83
|
+
if (typeof scheduledTimeoutFunctions.get(timerId) === 'function') {
|
|
84
|
+
const id = generateUniqueNumber(unrespondedRequests);
|
|
85
|
+
unrespondedRequests.set(id, { timerId, timerType: 'timeout' });
|
|
86
|
+
scheduledTimeoutFunctions.set(timerId, id);
|
|
87
|
+
worker.postMessage({
|
|
88
|
+
id,
|
|
89
|
+
method: 'clear',
|
|
90
|
+
params: { timerId, timerType: 'timeout' }
|
|
91
|
+
});
|
|
92
|
+
}
|
|
89
93
|
};
|
|
90
94
|
const setInterval = (func, delay = 0) => {
|
|
91
95
|
const timerId = generateUniqueNumber(scheduledIntervalFunctions);
|
|
@@ -98,7 +102,7 @@ export const load = (url) => {
|
|
|
98
102
|
method: 'set',
|
|
99
103
|
params: {
|
|
100
104
|
delay,
|
|
101
|
-
now: performance.now(),
|
|
105
|
+
now: performance.timeOrigin + performance.now(),
|
|
102
106
|
timerId,
|
|
103
107
|
timerType: 'interval'
|
|
104
108
|
}
|
|
@@ -110,7 +114,7 @@ export const load = (url) => {
|
|
|
110
114
|
method: 'set',
|
|
111
115
|
params: {
|
|
112
116
|
delay,
|
|
113
|
-
now: performance.now(),
|
|
117
|
+
now: performance.timeOrigin + performance.now(),
|
|
114
118
|
timerId,
|
|
115
119
|
timerType: 'interval'
|
|
116
120
|
}
|
|
@@ -125,7 +129,7 @@ export const load = (url) => {
|
|
|
125
129
|
method: 'set',
|
|
126
130
|
params: {
|
|
127
131
|
delay,
|
|
128
|
-
now: performance.now(),
|
|
132
|
+
now: performance.timeOrigin + performance.now(),
|
|
129
133
|
timerId,
|
|
130
134
|
timerType: 'timeout'
|
|
131
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;IAChC,2GAA2G;IAC3G,MAAM,0BAA0B,GAAmC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B;IAC5H,MAAM,yBAAyB,GAAmC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B;IAC3H,MAAM,mBAAmB,GAA4D,IAAI,GAAG,EAAE,CAAC;IAE/F,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IAE/B,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAgB,EAAE,EAAE;QAC1D,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,EACF,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EACjC,GAAG,IAAI,CAAC;YAET,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEzD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC/B,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAE9D,IACI,mBAAmB,KAAK,SAAS;wBACjC,mBAAmB,CAAC,OAAO,KAAK,OAAO;wBACvC,mBAAmB,CAAC,SAAS,KAAK,SAAS,EAC7C,CAAC;wBACC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBAC3D,CAAC;gBACL,CAAC;qBAAM,IAAI,OAAO,QAAQ,KAAK,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"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"}
|
package/build/es5/bundle.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('fast-unique-numbers')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'fast-unique-numbers'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.workerTimersBroker = {}, global.fastUniqueNumbers));
|
|
5
|
-
})(this, (function (exports, fastUniqueNumbers) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/typeof'), require('fast-unique-numbers')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/typeof', 'fast-unique-numbers'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.workerTimersBroker = {}, global._typeof, global.fastUniqueNumbers));
|
|
5
|
+
})(this, (function (exports, _typeof, fastUniqueNumbers) { 'use strict';
|
|
6
6
|
|
|
7
7
|
var isCallNotification = function isCallNotification(message) {
|
|
8
8
|
return message.method !== undefined && message.method === 'call';
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
var isClearResponse = function isClearResponse(message) {
|
|
12
|
-
return message.
|
|
12
|
+
return typeof message.id === 'number' && typeof message.result === 'boolean';
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
var load = function load(url) {
|
|
@@ -26,29 +26,31 @@
|
|
|
26
26
|
timerType = _data$params.timerType;
|
|
27
27
|
if (timerType === 'interval') {
|
|
28
28
|
var idOrFunc = scheduledIntervalFunctions.get(timerId);
|
|
29
|
+
if (_typeof(idOrFunc) === undefined) {
|
|
30
|
+
throw new Error('The timer is in an undefined state.');
|
|
31
|
+
}
|
|
29
32
|
if (typeof idOrFunc === 'number') {
|
|
30
33
|
var timerIdAndTimerType = unrespondedRequests.get(idOrFunc);
|
|
31
34
|
if (timerIdAndTimerType === undefined || timerIdAndTimerType.timerId !== timerId || timerIdAndTimerType.timerType !== timerType) {
|
|
32
35
|
throw new Error('The timer is in an undefined state.');
|
|
33
36
|
}
|
|
34
|
-
} else if (typeof idOrFunc
|
|
37
|
+
} else if (typeof idOrFunc === 'function') {
|
|
35
38
|
idOrFunc();
|
|
36
|
-
} else {
|
|
37
|
-
throw new Error('The timer is in an undefined state.');
|
|
38
39
|
}
|
|
39
40
|
} else if (timerType === 'timeout') {
|
|
40
41
|
var _idOrFunc = scheduledTimeoutFunctions.get(timerId);
|
|
42
|
+
if (_typeof(_idOrFunc) === undefined) {
|
|
43
|
+
throw new Error('The timer is in an undefined state.');
|
|
44
|
+
}
|
|
41
45
|
if (typeof _idOrFunc === 'number') {
|
|
42
46
|
var _timerIdAndTimerType = unrespondedRequests.get(_idOrFunc);
|
|
43
47
|
if (_timerIdAndTimerType === undefined || _timerIdAndTimerType.timerId !== timerId || _timerIdAndTimerType.timerType !== timerType) {
|
|
44
48
|
throw new Error('The timer is in an undefined state.');
|
|
45
49
|
}
|
|
46
|
-
} else if (typeof _idOrFunc
|
|
50
|
+
} else if (typeof _idOrFunc === 'function') {
|
|
47
51
|
_idOrFunc();
|
|
48
52
|
// A timeout can be savely deleted because it is only called once.
|
|
49
53
|
scheduledTimeoutFunctions["delete"](timerId);
|
|
50
|
-
} else {
|
|
51
|
-
throw new Error('The timer is in an undefined state.');
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
} else if (isClearResponse(data)) {
|
|
@@ -71,36 +73,40 @@
|
|
|
71
73
|
}
|
|
72
74
|
});
|
|
73
75
|
var clearInterval = function clearInterval(timerId) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
timerType: 'interval'
|
|
78
|
-
});
|
|
79
|
-
scheduledIntervalFunctions.set(timerId, id);
|
|
80
|
-
worker.postMessage({
|
|
81
|
-
id: id,
|
|
82
|
-
method: 'clear',
|
|
83
|
-
params: {
|
|
76
|
+
if (typeof scheduledIntervalFunctions.get(timerId) === 'function') {
|
|
77
|
+
var id = fastUniqueNumbers.generateUniqueNumber(unrespondedRequests);
|
|
78
|
+
unrespondedRequests.set(id, {
|
|
84
79
|
timerId: timerId,
|
|
85
80
|
timerType: 'interval'
|
|
86
|
-
}
|
|
87
|
-
|
|
81
|
+
});
|
|
82
|
+
scheduledIntervalFunctions.set(timerId, id);
|
|
83
|
+
worker.postMessage({
|
|
84
|
+
id: id,
|
|
85
|
+
method: 'clear',
|
|
86
|
+
params: {
|
|
87
|
+
timerId: timerId,
|
|
88
|
+
timerType: 'interval'
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
88
92
|
};
|
|
89
93
|
var clearTimeout = function clearTimeout(timerId) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
timerType: 'timeout'
|
|
94
|
-
});
|
|
95
|
-
scheduledTimeoutFunctions.set(timerId, id);
|
|
96
|
-
worker.postMessage({
|
|
97
|
-
id: id,
|
|
98
|
-
method: 'clear',
|
|
99
|
-
params: {
|
|
94
|
+
if (typeof scheduledTimeoutFunctions.get(timerId) === 'function') {
|
|
95
|
+
var id = fastUniqueNumbers.generateUniqueNumber(unrespondedRequests);
|
|
96
|
+
unrespondedRequests.set(id, {
|
|
100
97
|
timerId: timerId,
|
|
101
98
|
timerType: 'timeout'
|
|
102
|
-
}
|
|
103
|
-
|
|
99
|
+
});
|
|
100
|
+
scheduledTimeoutFunctions.set(timerId, id);
|
|
101
|
+
worker.postMessage({
|
|
102
|
+
id: id,
|
|
103
|
+
method: 'clear',
|
|
104
|
+
params: {
|
|
105
|
+
timerId: timerId,
|
|
106
|
+
timerType: 'timeout'
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
104
110
|
};
|
|
105
111
|
var setInterval = function setInterval(func) {
|
|
106
112
|
var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
@@ -114,7 +120,7 @@
|
|
|
114
120
|
method: 'set',
|
|
115
121
|
params: {
|
|
116
122
|
delay: delay,
|
|
117
|
-
now: performance.now(),
|
|
123
|
+
now: performance.timeOrigin + performance.now(),
|
|
118
124
|
timerId: timerId,
|
|
119
125
|
timerType: 'interval'
|
|
120
126
|
}
|
|
@@ -126,7 +132,7 @@
|
|
|
126
132
|
method: 'set',
|
|
127
133
|
params: {
|
|
128
134
|
delay: delay,
|
|
129
|
-
now: performance.now(),
|
|
135
|
+
now: performance.timeOrigin + performance.now(),
|
|
130
136
|
timerId: timerId,
|
|
131
137
|
timerType: 'interval'
|
|
132
138
|
}
|
|
@@ -142,7 +148,7 @@
|
|
|
142
148
|
method: 'set',
|
|
143
149
|
params: {
|
|
144
150
|
delay: delay,
|
|
145
|
-
now: performance.now(),
|
|
151
|
+
now: performance.timeOrigin + performance.now(),
|
|
146
152
|
timerId: timerId,
|
|
147
153
|
timerType: 'timeout'
|
|
148
154
|
}
|
package/package.json
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@babel/runtime": "^7.24.5",
|
|
13
|
-
"fast-unique-numbers": "^
|
|
13
|
+
"fast-unique-numbers": "^9.0.5",
|
|
14
14
|
"tslib": "^2.6.2",
|
|
15
|
-
"worker-timers-worker": "^
|
|
15
|
+
"worker-timers-worker": "^8.0.0"
|
|
16
16
|
},
|
|
17
17
|
"description": "The broker which is used by the worker-timers package.",
|
|
18
18
|
"devDependencies": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"commitizen": "^4.3.0",
|
|
28
28
|
"cz-conventional-changelog": "^3.3.0",
|
|
29
29
|
"eslint": "^8.57.0",
|
|
30
|
-
"eslint-config-holy-grail": "^59.0.
|
|
30
|
+
"eslint-config-holy-grail": "^59.0.10",
|
|
31
31
|
"grunt": "^1.6.1",
|
|
32
32
|
"grunt-cli": "^1.4.3",
|
|
33
33
|
"grunt-sh": "^0.2.1",
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
"karma-sinon-chai": "^2.0.2",
|
|
41
41
|
"karma-webkit-launcher": "^2.4.0",
|
|
42
42
|
"karma-webpack": "^5.0.1",
|
|
43
|
-
"lint-staged": "^15.2.
|
|
43
|
+
"lint-staged": "^15.2.4",
|
|
44
44
|
"load-grunt-config": "^4.0.1",
|
|
45
45
|
"mocha": "^10.4.0",
|
|
46
46
|
"prettier": "^3.2.5",
|
|
47
|
-
"rimraf": "^5.0.
|
|
47
|
+
"rimraf": "^5.0.7",
|
|
48
48
|
"rollup": "^4.17.2",
|
|
49
|
-
"sinon": "^17.0.
|
|
49
|
+
"sinon": "^17.0.2",
|
|
50
50
|
"sinon-chai": "^3.7.0",
|
|
51
51
|
"ts-loader": "^9.5.1",
|
|
52
52
|
"tsconfig-holy-grail": "^15.0.1",
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"test": "grunt lint && grunt test"
|
|
81
81
|
},
|
|
82
82
|
"types": "build/es2019/module.d.ts",
|
|
83
|
-
"version": "
|
|
83
|
+
"version": "7.0.1"
|
|
84
84
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IClearResponse, TWorkerMessage } from 'worker-timers-worker';
|
|
2
2
|
|
|
3
3
|
export const isClearResponse = (message: TWorkerMessage): message is IClearResponse => {
|
|
4
|
-
return
|
|
4
|
+
return typeof message.id === 'number' && typeof (<IClearResponse>message).result === 'boolean';
|
|
5
5
|
};
|
package/src/module.ts
CHANGED
|
@@ -20,6 +20,10 @@ export const load = (url: string) => {
|
|
|
20
20
|
if (timerType === 'interval') {
|
|
21
21
|
const idOrFunc = scheduledIntervalFunctions.get(timerId);
|
|
22
22
|
|
|
23
|
+
if (typeof idOrFunc === undefined) {
|
|
24
|
+
throw new Error('The timer is in an undefined state.');
|
|
25
|
+
}
|
|
26
|
+
|
|
23
27
|
if (typeof idOrFunc === 'number') {
|
|
24
28
|
const timerIdAndTimerType = unrespondedRequests.get(idOrFunc);
|
|
25
29
|
|
|
@@ -30,14 +34,16 @@ export const load = (url: string) => {
|
|
|
30
34
|
) {
|
|
31
35
|
throw new Error('The timer is in an undefined state.');
|
|
32
36
|
}
|
|
33
|
-
} else if (typeof idOrFunc
|
|
37
|
+
} else if (typeof idOrFunc === 'function') {
|
|
34
38
|
idOrFunc();
|
|
35
|
-
} else {
|
|
36
|
-
throw new Error('The timer is in an undefined state.');
|
|
37
39
|
}
|
|
38
40
|
} else if (timerType === 'timeout') {
|
|
39
41
|
const idOrFunc = scheduledTimeoutFunctions.get(timerId);
|
|
40
42
|
|
|
43
|
+
if (typeof idOrFunc === undefined) {
|
|
44
|
+
throw new Error('The timer is in an undefined state.');
|
|
45
|
+
}
|
|
46
|
+
|
|
41
47
|
if (typeof idOrFunc === 'number') {
|
|
42
48
|
const timerIdAndTimerType = unrespondedRequests.get(idOrFunc);
|
|
43
49
|
|
|
@@ -48,13 +54,11 @@ export const load = (url: string) => {
|
|
|
48
54
|
) {
|
|
49
55
|
throw new Error('The timer is in an undefined state.');
|
|
50
56
|
}
|
|
51
|
-
} else if (typeof idOrFunc
|
|
57
|
+
} else if (typeof idOrFunc === 'function') {
|
|
52
58
|
idOrFunc();
|
|
53
59
|
|
|
54
60
|
// A timeout can be savely deleted because it is only called once.
|
|
55
61
|
scheduledTimeoutFunctions.delete(timerId);
|
|
56
|
-
} else {
|
|
57
|
-
throw new Error('The timer is in an undefined state.');
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
64
|
} else if (isClearResponse(data)) {
|
|
@@ -85,29 +89,33 @@ export const load = (url: string) => {
|
|
|
85
89
|
});
|
|
86
90
|
|
|
87
91
|
const clearInterval = (timerId: number) => {
|
|
88
|
-
|
|
92
|
+
if (typeof scheduledIntervalFunctions.get(timerId) === 'function') {
|
|
93
|
+
const id = generateUniqueNumber(unrespondedRequests);
|
|
89
94
|
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
unrespondedRequests.set(id, { timerId, timerType: 'interval' });
|
|
96
|
+
scheduledIntervalFunctions.set(timerId, id);
|
|
92
97
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
worker.postMessage(<IClearRequest>{
|
|
99
|
+
id,
|
|
100
|
+
method: 'clear',
|
|
101
|
+
params: { timerId, timerType: 'interval' }
|
|
102
|
+
});
|
|
103
|
+
}
|
|
98
104
|
};
|
|
99
105
|
|
|
100
106
|
const clearTimeout = (timerId: number) => {
|
|
101
|
-
|
|
107
|
+
if (typeof scheduledTimeoutFunctions.get(timerId) === 'function') {
|
|
108
|
+
const id = generateUniqueNumber(unrespondedRequests);
|
|
102
109
|
|
|
103
|
-
|
|
104
|
-
|
|
110
|
+
unrespondedRequests.set(id, { timerId, timerType: 'timeout' });
|
|
111
|
+
scheduledTimeoutFunctions.set(timerId, id);
|
|
105
112
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
113
|
+
worker.postMessage(<IClearRequest>{
|
|
114
|
+
id,
|
|
115
|
+
method: 'clear',
|
|
116
|
+
params: { timerId, timerType: 'timeout' }
|
|
117
|
+
});
|
|
118
|
+
}
|
|
111
119
|
};
|
|
112
120
|
|
|
113
121
|
const setInterval = (func: Function, delay = 0) => {
|
|
@@ -123,7 +131,7 @@ export const load = (url: string) => {
|
|
|
123
131
|
method: 'set',
|
|
124
132
|
params: {
|
|
125
133
|
delay,
|
|
126
|
-
now: performance.now(),
|
|
134
|
+
now: performance.timeOrigin + performance.now(),
|
|
127
135
|
timerId,
|
|
128
136
|
timerType: 'interval'
|
|
129
137
|
}
|
|
@@ -136,7 +144,7 @@ export const load = (url: string) => {
|
|
|
136
144
|
method: 'set',
|
|
137
145
|
params: {
|
|
138
146
|
delay,
|
|
139
|
-
now: performance.now(),
|
|
147
|
+
now: performance.timeOrigin + performance.now(),
|
|
140
148
|
timerId,
|
|
141
149
|
timerType: 'interval'
|
|
142
150
|
}
|
|
@@ -155,7 +163,7 @@ export const load = (url: string) => {
|
|
|
155
163
|
method: 'set',
|
|
156
164
|
params: {
|
|
157
165
|
delay,
|
|
158
|
-
now: performance.now(),
|
|
166
|
+
now: performance.timeOrigin + performance.now(),
|
|
159
167
|
timerId,
|
|
160
168
|
timerType: 'timeout'
|
|
161
169
|
}
|