@atlaspack/workers 2.14.5-canary.20 → 2.14.5-canary.201

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 (68) hide show
  1. package/CHANGELOG.md +244 -0
  2. package/dist/Handle.js +33 -0
  3. package/dist/Worker.js +180 -0
  4. package/dist/WorkerFarm.js +541 -0
  5. package/dist/backend.js +34 -0
  6. package/dist/bus.js +24 -0
  7. package/dist/child.js +290 -0
  8. package/dist/childState.js +11 -0
  9. package/dist/cpuCount.js +72 -0
  10. package/dist/index.js +44 -0
  11. package/dist/process/ProcessChild.js +48 -0
  12. package/dist/process/ProcessWorker.js +68 -0
  13. package/dist/threads/ThreadsChild.js +31 -0
  14. package/dist/threads/ThreadsWorker.js +47 -0
  15. package/dist/types.js +2 -0
  16. package/dist/web/WebChild.js +34 -0
  17. package/dist/web/WebWorker.js +70 -0
  18. package/index.d.ts +96 -3
  19. package/lib/Handle.js +0 -3
  20. package/lib/Worker.js +7 -1
  21. package/lib/WorkerFarm.js +15 -7
  22. package/lib/backend.js +5 -1
  23. package/lib/bus.js +1 -1
  24. package/lib/child.js +11 -4
  25. package/lib/cpuCount.js +6 -2
  26. package/lib/process/ProcessChild.js +6 -1
  27. package/lib/process/ProcessWorker.js +9 -2
  28. package/lib/threads/ThreadsChild.js +3 -0
  29. package/lib/threads/ThreadsWorker.js +10 -2
  30. package/lib/types/Handle.d.ts +19 -0
  31. package/lib/types/Worker.d.ts +40 -0
  32. package/lib/types/WorkerFarm.d.ts +93 -0
  33. package/lib/types/backend.d.ts +4 -0
  34. package/lib/types/bus.d.ts +6 -0
  35. package/lib/types/child.d.ts +43 -0
  36. package/lib/types/childState.d.ts +3 -0
  37. package/lib/types/cpuCount.d.ts +2 -0
  38. package/lib/types/index.d.ts +6 -0
  39. package/lib/types/process/ProcessChild.d.ts +9 -0
  40. package/lib/types/process/ProcessWorker.d.ts +16 -0
  41. package/lib/types/threads/ThreadsChild.d.ts +8 -0
  42. package/lib/types/threads/ThreadsWorker.d.ts +15 -0
  43. package/lib/types/types.d.ts +52 -0
  44. package/lib/types/web/WebChild.d.ts +8 -0
  45. package/lib/types/web/WebWorker.d.ts +15 -0
  46. package/lib/web/WebChild.js +6 -1
  47. package/lib/web/WebWorker.js +20 -4
  48. package/package.json +15 -19
  49. package/src/{Handle.js → Handle.ts} +11 -11
  50. package/src/{Worker.js → Worker.ts} +66 -54
  51. package/src/{WorkerFarm.js → WorkerFarm.ts} +196 -141
  52. package/src/{backend.js → backend.ts} +6 -3
  53. package/src/{bus.js → bus.ts} +2 -3
  54. package/src/{child.js → child.ts} +55 -43
  55. package/src/{childState.js → childState.ts} +1 -2
  56. package/src/{cpuCount.js → cpuCount.ts} +10 -7
  57. package/src/{index.js → index.ts} +0 -1
  58. package/src/process/{ProcessChild.js → ProcessChild.ts} +5 -3
  59. package/src/process/{ProcessWorker.js → ProcessWorker.ts} +10 -7
  60. package/src/threads/{ThreadsChild.js → ThreadsChild.ts} +2 -2
  61. package/src/threads/{ThreadsWorker.js → ThreadsWorker.ts} +14 -8
  62. package/src/{types.js → types.ts} +34 -35
  63. package/src/web/{WebChild.js → WebChild.ts} +6 -2
  64. package/src/web/{WebWorker.js → WebWorker.ts} +19 -7
  65. package/test/{cpuCount.test.js → cpuCount.test.ts} +0 -1
  66. package/test/{workerfarm.test.cjs → workerfarm.test.js} +9 -2
  67. package/tsconfig.json +27 -0
  68. package/tsconfig.tsbuildinfo +1 -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,11 +622,12 @@ 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
 
@@ -594,18 +638,23 @@ export default class WorkerFarm extends EventEmitter {
594
638
  }
595
639
 
596
640
  async callAllWorkers(method: string, args: Array<any>) {
597
- let promises = [];
641
+ let promises: Array<Promise<unknown> | Promise<any>> = [];
598
642
  for (let worker of this.workers.values()) {
599
643
  promises.push(
600
- new Promise((resolve, reject) => {
601
- worker.call({
602
- method,
603
- args,
604
- resolve,
605
- reject,
606
- retries: 0,
607
- });
608
- }),
644
+ new Promise(
645
+ (
646
+ resolve: (result: Promise<any> | any) => void,
647
+ reject: (error?: any) => void,
648
+ ) => {
649
+ worker.call({
650
+ method,
651
+ args,
652
+ resolve,
653
+ reject,
654
+ retries: 0,
655
+ });
656
+ },
657
+ ),
609
658
  );
610
659
  }
611
660
 
@@ -620,16 +669,21 @@ export default class WorkerFarm extends EventEmitter {
620
669
  let snapshotPaths = await Promise.all(
621
670
  [...this.workers.values()].map(
622
671
  (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
- }),
672
+ new Promise(
673
+ (
674
+ resolve: (result: Promise<any> | any) => void,
675
+ reject: (error?: any) => void,
676
+ ) => {
677
+ worker.call({
678
+ method: 'takeHeapSnapshot',
679
+ args: [snapshotId],
680
+ resolve,
681
+ reject,
682
+ retries: 0,
683
+ skipReadyCheck: true,
684
+ });
685
+ },
686
+ ),
633
687
  ),
634
688
  );
635
689
 
@@ -657,16 +711,16 @@ export default class WorkerFarm extends EventEmitter {
657
711
  return !!child;
658
712
  }
659
713
 
660
- static getWorkerApi(): {|
714
+ static getWorkerApi(): {
661
715
  callMaster: (
662
716
  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
- |} {
717
+ awaitResponse?: boolean | null | undefined,
718
+ ) => Promise<unknown>;
719
+ createReverseHandle: (fn: (...args: Array<any>) => unknown) => Handle;
720
+ getSharedReference: (ref: SharedReference) => unknown;
721
+ resolveSharedReference: (value: unknown) => undefined | SharedReference;
722
+ runHandle: (handle: Handle, args: Array<any>) => Promise<unknown>;
723
+ } {
670
724
  invariant(
671
725
  child != null,
672
726
  'WorkerFarm.getWorkerApi can only be called within workers',
@@ -675,9 +729,10 @@ export default class WorkerFarm extends EventEmitter {
675
729
  }
676
730
 
677
731
  static getConcurrentCallsPerWorker(
678
- defaultValue?: number = DEFAULT_MAX_CONCURRENT_CALLS,
732
+ defaultValue: number = DEFAULT_MAX_CONCURRENT_CALLS,
679
733
  ): number {
680
734
  return (
735
+ // @ts-expect-error TS2345
681
736
  parseInt(process.env.ATLASPACK_MAX_CONCURRENT_CALLS, 10) || defaultValue
682
737
  );
683
738
  }
@@ -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;