@atlaspack/workers 2.14.21 → 2.14.22-typescript-17c3d1dec.0

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.
Files changed (51) hide show
  1. package/LICENSE +201 -0
  2. package/index.d.ts +94 -2
  3. package/lib/Handle.d.ts +19 -0
  4. package/lib/Handle.js +0 -3
  5. package/lib/Worker.d.ts +40 -0
  6. package/lib/Worker.js +7 -1
  7. package/lib/WorkerFarm.d.ts +93 -0
  8. package/lib/WorkerFarm.js +17 -7
  9. package/lib/backend.d.ts +4 -0
  10. package/lib/backend.js +5 -1
  11. package/lib/bus.d.ts +6 -0
  12. package/lib/bus.js +1 -1
  13. package/lib/child.d.ts +43 -0
  14. package/lib/child.js +11 -4
  15. package/lib/childState.d.ts +3 -0
  16. package/lib/cpuCount.d.ts +2 -0
  17. package/lib/cpuCount.js +6 -2
  18. package/lib/index.d.ts +6 -0
  19. package/lib/process/ProcessChild.d.ts +9 -0
  20. package/lib/process/ProcessChild.js +6 -1
  21. package/lib/process/ProcessWorker.d.ts +16 -0
  22. package/lib/process/ProcessWorker.js +9 -2
  23. package/lib/threads/ThreadsChild.d.ts +8 -0
  24. package/lib/threads/ThreadsChild.js +3 -0
  25. package/lib/threads/ThreadsWorker.d.ts +15 -0
  26. package/lib/threads/ThreadsWorker.js +10 -2
  27. package/lib/types.d.ts +52 -0
  28. package/lib/web/WebChild.d.ts +8 -0
  29. package/lib/web/WebChild.js +6 -1
  30. package/lib/web/WebWorker.d.ts +15 -0
  31. package/lib/web/WebWorker.js +20 -4
  32. package/package.json +16 -12
  33. package/src/{Handle.js → Handle.ts} +11 -11
  34. package/src/{Worker.js → Worker.ts} +66 -54
  35. package/src/{WorkerFarm.js → WorkerFarm.ts} +198 -141
  36. package/src/{backend.js → backend.ts} +6 -3
  37. package/src/{bus.js → bus.ts} +2 -3
  38. package/src/{child.js → child.ts} +55 -43
  39. package/src/{childState.js → childState.ts} +1 -2
  40. package/src/{cpuCount.js → cpuCount.ts} +10 -7
  41. package/src/{index.js → index.ts} +0 -1
  42. package/src/process/{ProcessChild.js → ProcessChild.ts} +5 -3
  43. package/src/process/{ProcessWorker.js → ProcessWorker.ts} +10 -7
  44. package/src/threads/{ThreadsChild.js → ThreadsChild.ts} +2 -2
  45. package/src/threads/{ThreadsWorker.js → ThreadsWorker.ts} +14 -8
  46. package/src/{types.js → types.ts} +34 -35
  47. package/src/web/{WebChild.js → WebChild.ts} +6 -2
  48. package/src/web/{WebWorker.js → WebWorker.ts} +19 -7
  49. package/test/{cpuCount.test.js → cpuCount.test.ts} +0 -1
  50. package/test/{workerfarm.test.cjs → workerfarm.test.js} +4 -2
  51. package/tsconfig.json +4 -0
@@ -1,5 +1,3 @@
1
- // @flow
2
-
3
1
  import type {ErrorWithCode, FilePath} from '@atlaspack/types-internal';
4
2
  import type {
5
3
  CallRequest,
@@ -22,7 +20,7 @@ import {
22
20
  serialize,
23
21
  } from '@atlaspack/build-cache';
24
22
  import ThrowableDiagnostic, {anyToDiagnostic, md} from '@atlaspack/diagnostic';
25
- import Worker, {type WorkerCall} from './Worker';
23
+ import Worker, {WorkerCall} from './Worker';
26
24
  import cpuCount from './cpuCount';
27
25
  import Handle from './Handle';
28
26
  import {child} from './childState';
@@ -33,32 +31,34 @@ import logger from '@atlaspack/logger';
33
31
 
34
32
  let referenceId = 1;
35
33
 
36
- export opaque type SharedReference = number;
37
-
38
- export type FarmOptions = {|
39
- maxConcurrentWorkers: number,
40
- maxConcurrentCallsPerWorker: number,
41
- forcedKillTime: number,
42
- useLocalWorker: boolean,
43
- warmWorkers: boolean,
44
- workerPath?: FilePath,
45
- backend: BackendType,
46
- shouldPatchConsole?: boolean,
47
- shouldTrace?: boolean,
48
- |};
34
+ export type SharedReference = number;
35
+
36
+ export type FarmOptions = {
37
+ maxConcurrentWorkers: number;
38
+ maxConcurrentCallsPerWorker: number;
39
+ forcedKillTime: number;
40
+ useLocalWorker: boolean;
41
+ warmWorkers: boolean;
42
+ workerPath?: FilePath;
43
+ backend: BackendType;
44
+ shouldPatchConsole?: boolean;
45
+ shouldTrace?: boolean;
46
+ };
49
47
 
50
48
  type WorkerModule = {
51
- +[string]: (...args: Array<mixed>) => Promise<mixed>,
52
- ...
49
+ readonly [key: string]: (...args: Array<unknown>) => Promise<unknown>;
53
50
  };
54
51
 
55
- export type WorkerApi = {|
56
- callMaster(CallRequest, ?boolean): Promise<mixed>,
57
- createReverseHandle(fn: HandleFunction): Handle,
58
- getSharedReference(ref: SharedReference): mixed,
59
- resolveSharedReference(value: mixed): ?SharedReference,
60
- callChild?: (childId: number, request: HandleCallRequest) => Promise<mixed>,
61
- |};
52
+ export type WorkerApi = {
53
+ callMaster(
54
+ arg1: CallRequest,
55
+ arg2?: boolean | null | undefined,
56
+ ): Promise<unknown>;
57
+ createReverseHandle(fn: HandleFunction): Handle;
58
+ getSharedReference(ref: SharedReference): unknown;
59
+ resolveSharedReference(value: unknown): SharedReference | null | undefined;
60
+ callChild?: (childId: number, request: HandleCallRequest) => Promise<unknown>;
61
+ };
62
62
 
63
63
  export {Handle};
64
64
 
@@ -72,19 +72,22 @@ export default class WorkerFarm extends EventEmitter {
72
72
  callQueue: Array<WorkerCall> = [];
73
73
  ending: boolean = false;
74
74
  localWorker: WorkerModule;
75
- localWorkerInit: ?Promise<void>;
75
+ localWorkerInit: Promise<undefined> | null | undefined;
76
76
  options: FarmOptions;
77
77
  run: HandleFunction;
78
78
  warmWorkers: number = 0;
79
79
  readyWorkers: number = 0;
80
80
  workers: Map<number, Worker> = new Map();
81
81
  handles: Map<number, Handle> = new Map();
82
- sharedReferences: Map<SharedReference, mixed> = new Map();
83
- sharedReferencesByValue: Map<mixed, SharedReference> = new Map();
84
- serializedSharedReferences: Map<SharedReference, ?ArrayBuffer> = new Map();
85
- profiler: ?SamplingProfiler;
86
-
87
- constructor(farmOptions: $Shape<FarmOptions> = {}) {
82
+ sharedReferences: Map<SharedReference, unknown> = new Map();
83
+ sharedReferencesByValue: Map<unknown, SharedReference> = new Map();
84
+ serializedSharedReferences: Map<
85
+ SharedReference,
86
+ ArrayBuffer | null | undefined
87
+ > = new Map();
88
+ profiler: SamplingProfiler | null | undefined;
89
+
90
+ constructor(farmOptions: Partial<FarmOptions> = {}) {
88
91
  super();
89
92
  this.options = {
90
93
  maxConcurrentWorkers: WorkerFarm.getNumWorkers(),
@@ -102,9 +105,9 @@ export default class WorkerFarm extends EventEmitter {
102
105
  throw new Error('Please provide a worker path!');
103
106
  }
104
107
 
105
- // $FlowFixMe
106
108
  this.localWorker = require(this.options.workerPath);
107
109
 
110
+ // @ts-expect-error TS2322
108
111
  this.localWorkerInit =
109
112
  this.localWorker.childInit != null ? this.localWorker.childInit() : null;
110
113
 
@@ -128,47 +131,58 @@ export default class WorkerFarm extends EventEmitter {
128
131
  this.startMaxWorkers();
129
132
  }
130
133
 
131
- workerApi: {|
132
- callChild: (childId: number, request: HandleCallRequest) => Promise<mixed>,
134
+ workerApi: {
135
+ callChild: (
136
+ childId: number,
137
+ request: HandleCallRequest,
138
+ ) => Promise<unknown>;
133
139
  callMaster: (
134
140
  request: CallRequest,
135
- awaitResponse?: ?boolean,
136
- ) => Promise<mixed>,
137
- createReverseHandle: (fn: HandleFunction) => Handle,
138
- getSharedReference: (ref: SharedReference) => mixed,
139
- resolveSharedReference: (value: mixed) => void | SharedReference,
140
- runHandle: (handle: Handle, args: Array<any>) => Promise<mixed>,
141
- |} = {
141
+ awaitResponse?: boolean | null | undefined,
142
+ ) => Promise<unknown>;
143
+ createReverseHandle: (fn: HandleFunction) => Handle;
144
+ getSharedReference: (ref: SharedReference) => unknown;
145
+ resolveSharedReference: (value: unknown) => undefined | SharedReference;
146
+ runHandle: (handle: Handle, args: Array<any>) => Promise<unknown>;
147
+ } = {
142
148
  callMaster: async (
143
149
  request: CallRequest,
144
- awaitResponse: ?boolean = true,
145
- ): Promise<mixed> => {
146
- // $FlowFixMe
150
+ awaitResponse: boolean | null = true,
151
+ ): Promise<unknown> => {
147
152
  let result = await this.processRequest({
148
153
  ...request,
154
+ // @ts-expect-error TS2322
149
155
  awaitResponse,
150
156
  });
151
157
  return deserialize(serialize(result));
152
158
  },
153
159
  createReverseHandle: (fn: HandleFunction): Handle =>
154
160
  this.createReverseHandle(fn),
155
- callChild: (childId: number, request: HandleCallRequest): Promise<mixed> =>
156
- new Promise((resolve, reject) => {
157
- nullthrows(this.workers.get(childId)).call({
158
- ...request,
159
- resolve,
160
- reject,
161
- retries: 0,
162
- });
163
- }),
164
- runHandle: (handle: Handle, args: Array<any>): Promise<mixed> =>
161
+ callChild: (
162
+ childId: number,
163
+ request: HandleCallRequest,
164
+ ): Promise<unknown> =>
165
+ new Promise(
166
+ (
167
+ resolve: (result: Promise<any> | any) => void,
168
+ reject: (error?: any) => void,
169
+ ) => {
170
+ nullthrows(this.workers.get(childId)).call({
171
+ ...request,
172
+ resolve,
173
+ reject,
174
+ retries: 0,
175
+ });
176
+ },
177
+ ),
178
+ runHandle: (handle: Handle, args: Array<any>): Promise<unknown> =>
165
179
  this.workerApi.callChild(nullthrows(handle.childId), {
166
180
  handle: handle.id,
167
181
  args,
168
182
  }),
169
183
  getSharedReference: (ref: SharedReference) =>
170
184
  this.sharedReferences.get(ref),
171
- resolveSharedReference: (value: mixed) =>
185
+ resolveSharedReference: (value: unknown) =>
172
186
  this.sharedReferencesByValue.get(value),
173
187
  };
174
188
 
@@ -234,9 +248,13 @@ export default class WorkerFarm extends EventEmitter {
234
248
  };
235
249
  }
236
250
 
237
- onError(error: ErrorWithCode, worker: Worker): void | Promise<void> {
251
+ onError(
252
+ error: ErrorWithCode,
253
+ worker: Worker,
254
+ ): undefined | Promise<undefined> {
238
255
  // Handle ipc errors
239
256
  if (error.code === 'ERR_IPC_CHANNEL_CLOSED') {
257
+ // @ts-expect-error TS2322
240
258
  return this.stopWorker(worker);
241
259
  } else {
242
260
  logger.error(error, '@atlaspack/workers');
@@ -314,6 +332,7 @@ export default class WorkerFarm extends EventEmitter {
314
332
  }
315
333
 
316
334
  if (worker.calls.size < this.options.maxConcurrentCallsPerWorker) {
335
+ // @ts-expect-error TS2345
317
336
  this.callWorker(worker, this.callQueue.shift());
318
337
  }
319
338
  }
@@ -333,25 +352,24 @@ export default class WorkerFarm extends EventEmitter {
333
352
  }
334
353
 
335
354
  async processRequest(
336
- data: {|
337
- location: FilePath,
338
- |} & $Shape<WorkerRequest>,
355
+ data: {
356
+ location: FilePath;
357
+ } & Partial<WorkerRequest>,
339
358
  worker?: Worker,
340
- ): Promise<?string> {
359
+ ): Promise<string | null | undefined> {
341
360
  let {method, args, location, awaitResponse, idx, handle: handleId} = data;
342
361
  let mod;
343
362
  if (handleId != null) {
344
363
  mod = nullthrows(this.handles.get(handleId)?.fn);
345
364
  } else if (location) {
346
- // $FlowFixMe
365
+ // @ts-expect-error TS2339
347
366
  if (process.browser) {
348
367
  if (location === '@atlaspack/workers/bus') {
349
- mod = (bus: any);
368
+ mod = bus as any;
350
369
  } else {
351
370
  throw new Error('No dynamic require possible: ' + location);
352
371
  }
353
372
  } else {
354
- // $FlowFixMe this must be dynamic
355
373
  mod = require(location);
356
374
  }
357
375
  } else {
@@ -375,8 +393,9 @@ export default class WorkerFarm extends EventEmitter {
375
393
  let result;
376
394
  if (method == null) {
377
395
  try {
396
+ // @ts-expect-error TS2488
378
397
  result = responseFromContent(await mod(...args));
379
- } catch (e) {
398
+ } catch (e: any) {
380
399
  result = errorResponseFromError(e);
381
400
  }
382
401
  } else {
@@ -386,9 +405,8 @@ export default class WorkerFarm extends EventEmitter {
386
405
  }
387
406
 
388
407
  try {
389
- // $FlowFixMe
390
408
  result = responseFromContent(await mod[method](...args));
391
- } catch (e) {
409
+ } catch (e: any) {
392
410
  result = errorResponseFromError(e);
393
411
  }
394
412
  }
@@ -410,16 +428,21 @@ export default class WorkerFarm extends EventEmitter {
410
428
  throw new Error('Cannot add a worker call if workerfarm is ending.');
411
429
  }
412
430
 
413
- return new Promise((resolve, reject) => {
414
- this.callQueue.push({
415
- method,
416
- args: args,
417
- retries: 0,
418
- resolve,
419
- reject,
420
- });
421
- this.processQueue();
422
- });
431
+ return new Promise(
432
+ (
433
+ resolve: (result: Promise<any> | any) => void,
434
+ reject: (error?: any) => void,
435
+ ) => {
436
+ this.callQueue.push({
437
+ method,
438
+ args: args,
439
+ retries: 0,
440
+ resolve,
441
+ reject,
442
+ });
443
+ this.processQueue();
444
+ },
445
+ );
423
446
  }
424
447
 
425
448
  async end(): Promise<void> {
@@ -466,9 +489,12 @@ export default class WorkerFarm extends EventEmitter {
466
489
  }
467
490
 
468
491
  createSharedReference(
469
- value: mixed,
492
+ value: unknown,
470
493
  isCacheable: boolean = true,
471
- ): {|ref: SharedReference, dispose(): Promise<mixed>|} {
494
+ ): {
495
+ ref: SharedReference;
496
+ dispose(): Promise<unknown>;
497
+ } {
472
498
  let ref = referenceId++;
473
499
  this.sharedReferences.set(ref, value);
474
500
  this.sharedReferencesByValue.set(value, ref);
@@ -483,7 +509,7 @@ export default class WorkerFarm extends EventEmitter {
483
509
  this.sharedReferencesByValue.delete(value);
484
510
  this.serializedSharedReferences.delete(ref);
485
511
 
486
- let promises = [];
512
+ let promises: Array<Promise<any>> = [];
487
513
  for (let worker of this.workers.values()) {
488
514
  if (!worker.sentSharedReferences.has(ref)) {
489
515
  continue;
@@ -491,16 +517,21 @@ export default class WorkerFarm extends EventEmitter {
491
517
 
492
518
  worker.sentSharedReferences.delete(ref);
493
519
  promises.push(
494
- new Promise((resolve, reject) => {
495
- worker.call({
496
- method: 'deleteSharedReference',
497
- args: [ref],
498
- resolve,
499
- reject,
500
- skipReadyCheck: true,
501
- retries: 0,
502
- });
503
- }),
520
+ new Promise(
521
+ (
522
+ resolve: (result: Promise<any> | any) => void,
523
+ reject: (error?: any) => void,
524
+ ) => {
525
+ worker.call({
526
+ method: 'deleteSharedReference',
527
+ args: [ref],
528
+ resolve,
529
+ reject,
530
+ skipReadyCheck: true,
531
+ retries: 0,
532
+ });
533
+ },
534
+ ),
504
535
  );
505
536
  }
506
537
  return Promise.all(promises);
@@ -520,26 +551,33 @@ export default class WorkerFarm extends EventEmitter {
520
551
  // If the reference was created with the isCacheable option set to false,
521
552
  // serializedSharedReferences will contain `null` as the value.
522
553
  if (cached !== null) {
554
+ // @ts-expect-error TS2345
523
555
  this.serializedSharedReferences.set(ref, buf);
524
556
  }
525
557
 
558
+ // @ts-expect-error TS2322
526
559
  return buf;
527
560
  }
528
561
 
529
562
  async startProfile() {
530
- let promises = [];
563
+ let promises: Array<Promise<unknown> | Promise<any>> = [];
531
564
  for (let worker of this.workers.values()) {
532
565
  promises.push(
533
- new Promise((resolve, reject) => {
534
- worker.call({
535
- method: 'startProfile',
536
- args: [],
537
- resolve,
538
- reject,
539
- retries: 0,
540
- skipReadyCheck: true,
541
- });
542
- }),
566
+ new Promise(
567
+ (
568
+ resolve: (result: Promise<any> | any) => void,
569
+ reject: (error?: any) => void,
570
+ ) => {
571
+ worker.call({
572
+ method: 'startProfile',
573
+ args: [],
574
+ resolve,
575
+ reject,
576
+ retries: 0,
577
+ skipReadyCheck: true,
578
+ });
579
+ },
580
+ ),
543
581
  );
544
582
  }
545
583
 
@@ -560,16 +598,21 @@ export default class WorkerFarm extends EventEmitter {
560
598
  for (let worker of this.workers.values()) {
561
599
  names.push('Worker ' + worker.id);
562
600
  promises.push(
563
- new Promise((resolve, reject) => {
564
- worker.call({
565
- method: 'endProfile',
566
- args: [],
567
- resolve,
568
- reject,
569
- retries: 0,
570
- skipReadyCheck: true,
571
- });
572
- }),
601
+ new Promise(
602
+ (
603
+ resolve: (result: Promise<any> | any) => void,
604
+ reject: (error?: any) => void,
605
+ ) => {
606
+ worker.call({
607
+ method: 'endProfile',
608
+ args: [],
609
+ resolve,
610
+ reject,
611
+ retries: 0,
612
+ skipReadyCheck: true,
613
+ });
614
+ },
615
+ ),
573
616
  );
574
617
  }
575
618
 
@@ -579,33 +622,40 @@ export default class WorkerFarm extends EventEmitter {
579
622
  let stream = trace.pipe(fs.createWriteStream(filename));
580
623
 
581
624
  for (let profile of profiles) {
625
+ // @ts-expect-error TS2345
582
626
  trace.addCPUProfile(names.shift(), profile);
583
627
  }
584
628
 
585
629
  trace.flush();
586
- await new Promise((resolve) => {
630
+ await new Promise((resolve: (result: Promise<never>) => void) => {
587
631
  stream.once('finish', resolve);
588
632
  });
589
633
 
590
634
  logger.info({
591
635
  origin: '@atlaspack/workers',
636
+ // @ts-expect-error TS2345
592
637
  message: md`Wrote profile to ${filename}`,
593
638
  });
594
639
  }
595
640
 
596
641
  async callAllWorkers(method: string, args: Array<any>) {
597
- let promises = [];
642
+ let promises: Array<Promise<unknown> | Promise<any>> = [];
598
643
  for (let worker of this.workers.values()) {
599
644
  promises.push(
600
- new Promise((resolve, reject) => {
601
- worker.call({
602
- method,
603
- args,
604
- resolve,
605
- reject,
606
- retries: 0,
607
- });
608
- }),
645
+ new Promise(
646
+ (
647
+ resolve: (result: Promise<any> | any) => void,
648
+ reject: (error?: any) => void,
649
+ ) => {
650
+ worker.call({
651
+ method,
652
+ args,
653
+ resolve,
654
+ reject,
655
+ retries: 0,
656
+ });
657
+ },
658
+ ),
609
659
  );
610
660
  }
611
661
 
@@ -620,21 +670,27 @@ export default class WorkerFarm extends EventEmitter {
620
670
  let snapshotPaths = await Promise.all(
621
671
  [...this.workers.values()].map(
622
672
  (worker) =>
623
- new Promise((resolve, reject) => {
624
- worker.call({
625
- method: 'takeHeapSnapshot',
626
- args: [snapshotId],
627
- resolve,
628
- reject,
629
- retries: 0,
630
- skipReadyCheck: true,
631
- });
632
- }),
673
+ new Promise(
674
+ (
675
+ resolve: (result: Promise<any> | any) => void,
676
+ reject: (error?: any) => void,
677
+ ) => {
678
+ worker.call({
679
+ method: 'takeHeapSnapshot',
680
+ args: [snapshotId],
681
+ resolve,
682
+ reject,
683
+ retries: 0,
684
+ skipReadyCheck: true,
685
+ });
686
+ },
687
+ ),
633
688
  ),
634
689
  );
635
690
 
636
691
  logger.info({
637
692
  origin: '@atlaspack/workers',
693
+ // @ts-expect-error TS2345
638
694
  message: md`Wrote heap snapshots to the following paths:\n${snapshotPaths.join(
639
695
  '\n',
640
696
  )}`,
@@ -657,16 +713,16 @@ export default class WorkerFarm extends EventEmitter {
657
713
  return !!child;
658
714
  }
659
715
 
660
- static getWorkerApi(): {|
716
+ static getWorkerApi(): {
661
717
  callMaster: (
662
718
  request: CallRequest,
663
- awaitResponse?: ?boolean,
664
- ) => Promise<mixed>,
665
- createReverseHandle: (fn: (...args: Array<any>) => mixed) => Handle,
666
- getSharedReference: (ref: SharedReference) => mixed,
667
- resolveSharedReference: (value: mixed) => void | SharedReference,
668
- runHandle: (handle: Handle, args: Array<any>) => Promise<mixed>,
669
- |} {
719
+ awaitResponse?: boolean | null | undefined,
720
+ ) => Promise<unknown>;
721
+ createReverseHandle: (fn: (...args: Array<any>) => unknown) => Handle;
722
+ getSharedReference: (ref: SharedReference) => unknown;
723
+ resolveSharedReference: (value: unknown) => undefined | SharedReference;
724
+ runHandle: (handle: Handle, args: Array<any>) => Promise<unknown>;
725
+ } {
670
726
  invariant(
671
727
  child != null,
672
728
  'WorkerFarm.getWorkerApi can only be called within workers',
@@ -675,9 +731,10 @@ export default class WorkerFarm extends EventEmitter {
675
731
  }
676
732
 
677
733
  static getConcurrentCallsPerWorker(
678
- defaultValue?: number = DEFAULT_MAX_CONCURRENT_CALLS,
734
+ defaultValue: number = DEFAULT_MAX_CONCURRENT_CALLS,
679
735
  ): number {
680
736
  return (
737
+ // @ts-expect-error TS2345
681
738
  parseInt(process.env.ATLASPACK_MAX_CONCURRENT_CALLS, 10) || defaultValue
682
739
  );
683
740
  }
@@ -1,8 +1,11 @@
1
- // @flow
2
1
  import type {BackendType, WorkerImpl} from './types';
3
2
 
3
+ // flow-to-ts helpers
4
+ export type Class<T> = new (...args: any[]) => T;
5
+ // /flow-to-ts helpers
6
+
4
7
  export function detectBackend(): BackendType {
5
- // $FlowFixMe
8
+ // @ts-expect-error TS2339
6
9
  if (process.browser) return 'web';
7
10
 
8
11
  switch (process.env.ATLASPACK_WORKER_BACKEND) {
@@ -14,7 +17,7 @@ export function detectBackend(): BackendType {
14
17
  try {
15
18
  require('worker_threads');
16
19
  return 'threads';
17
- } catch (err) {
20
+ } catch (err: any) {
18
21
  return 'process';
19
22
  }
20
23
  }
@@ -1,4 +1,3 @@
1
- // @flow
2
1
  import EventEmitter from 'events';
3
2
  import {child} from './childState';
4
3
 
@@ -7,7 +6,7 @@ class Bus extends EventEmitter {
7
6
  if (child) {
8
7
  child.workerApi.callMaster(
9
8
  {
10
- // $FlowFixMe
9
+ // @ts-expect-error TS2339
11
10
  location: process.browser ? '@atlaspack/workers/bus' : __filename,
12
11
  method: 'emit',
13
12
  args: [event, ...args],
@@ -21,4 +20,4 @@ class Bus extends EventEmitter {
21
20
  }
22
21
  }
23
22
 
24
- export default (new Bus(): Bus);
23
+ export default new Bus() as Bus;