File tree Expand file tree Collapse file tree 5 files changed +30
-11
lines changed
Expand file tree Collapse file tree 5 files changed +30
-11
lines changed Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ npx tsc src/timers/worker.ts \
44 --skipLibCheck \
55 --removeComments \
66 --module preserve \
7+ --target ES2020 \
78 --lib ES2020,WebWorker \
89 --outDir worker-dist
910
Original file line number Diff line number Diff line change 1111 "scripts" : {
1212 "clean" : " rimraf dist" ,
1313 "start" : " rollup -w -c" ,
14- "build" : " yarn clean && ./generate-timer-worker.sh && rollup -c" ,
14+ "build" : " yarn clean && rollup -c" ,
1515 "test" : " vitest" ,
1616 "clean:docs" : " rimraf generated-docs" ,
1717 "test-ci" : " vitest --coverage" ,
Original file line number Diff line number Diff line change @@ -89,12 +89,11 @@ export class StreamVideoClient {
8989 if ( typeof apiKeyOrArgs === 'string' ) {
9090 logLevel = opts ?. logLevel || logLevel ;
9191 logger = opts ?. logger || logger ;
92- if ( opts ?. expertimental_enableTimerWorker ) enableTimerWorker ( ) ;
92+ if ( opts ?. enableTimerWorker ) enableTimerWorker ( ) ;
9393 } else {
9494 logLevel = apiKeyOrArgs . options ?. logLevel || logLevel ;
9595 logger = apiKeyOrArgs . options ?. logger || logger ;
96- if ( apiKeyOrArgs . options ?. expertimental_enableTimerWorker )
97- enableTimerWorker ( ) ;
96+ if ( apiKeyOrArgs . options ?. enableTimerWorker ) enableTimerWorker ( ) ;
9897 }
9998
10099 setLogger ( logger , logLevel ) ;
Original file line number Diff line number Diff line change @@ -151,7 +151,7 @@ export type StreamClientOptions = Partial<AxiosRequestConfig> & {
151151 * Create Web Worker to initiate timer events like health checks. Can possibly prevent
152152 * timer throttling issues in inactive browser tabs.
153153 */
154- expertimental_enableTimerWorker ?: boolean ;
154+ enableTimerWorker ?: boolean ;
155155} ;
156156
157157export type TokenProvider = ( ) => Promise < string > ;
Original file line number Diff line number Diff line change 1- // Do not modify this file manually. You can edit worker.ts if necessary
1+ // Do not modify this file manually. Instead, edit worker.ts
22// and the run ./generate-timer-worker.sh
33export const timerWorker = {
4- get src ( ) : string {
5- throw new Error (
6- 'Timer worker source missing. Did you forget to run generate-timer-worker.sh?' ,
7- ) ;
8- } ,
4+ src : `const timerIdMapping = new Map();
5+ self.addEventListener('message', (event) => {
6+ const request = event.data;
7+ switch (request.type) {
8+ case 'setTimeout':
9+ case 'setInterval':
10+ timerIdMapping.set(request.id, (request.type === 'setTimeout' ? setTimeout : setInterval)(() => {
11+ tick(request.id);
12+ if (request.type === 'setTimeout') {
13+ timerIdMapping.delete(request.id);
14+ }
15+ }, request.timeout));
16+ break;
17+ case 'clearTimeout':
18+ case 'clearInterval':
19+ (request.type === 'clearTimeout' ? clearTimeout : clearInterval)(timerIdMapping.get(request.id));
20+ timerIdMapping.delete(request.id);
21+ break;
22+ }
23+ });
24+ function tick(id) {
25+ const message = { type: 'tick', id };
26+ self.postMessage(message);
27+ }` ,
928} ;
You can’t perform that action at this time.
0 commit comments