kizu 3.9.2-next.3 → 3.9.2-next.4

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 (2) hide show
  1. package/dist/workerPool.js +19 -6
  2. package/package.json +1 -1
@@ -18,6 +18,7 @@ function getTypeScriptRuntime() {
18
18
  try {
19
19
  // Fallback to ts-node if tsx is not available
20
20
  require.resolve('ts-node/register');
21
+ console.warn('Warning: tsx not found, using ts-node as a fallback. This is slower. We recommend installing tsx (npm install --save-dev tsx) for much faster execution.');
21
22
  return ['-r', 'ts-node/register'];
22
23
  }
23
24
  catch (error) {
@@ -26,6 +27,18 @@ function getTypeScriptRuntime() {
26
27
  }
27
28
  }
28
29
  }
30
+ function createWorker(file) {
31
+ const isTypeScript = (0, path_1.extname)(file) === '.ts';
32
+ let execArgv = [];
33
+ if (isTypeScript) {
34
+ execArgv = getTypeScriptRuntime();
35
+ }
36
+ const [err, worker] = (0, toResult_1.toResult)(() => (0, child_process_1.fork)(file, [], { execArgv }));
37
+ if (err) {
38
+ throw new Error(`failed to create worker for ${file}`);
39
+ }
40
+ return worker;
41
+ }
29
42
  function workerPool(specFiles, addTestResults) {
30
43
  return new Promise((resolve, reject) => {
31
44
  function next() {
@@ -36,12 +49,12 @@ function workerPool(specFiles, addTestResults) {
36
49
  if (numWorkers >= numCores)
37
50
  return;
38
51
  const file = specFiles[currentSpecFileIndex];
39
- // Use tsx for TypeScript files (faster than ts-node), fallback to ts-node if not available
40
- const isTypeScript = (0, path_1.extname)(file) === '.ts';
41
- const execArgv = isTypeScript ? getTypeScriptRuntime() : [];
42
- const [err, worker] = (0, toResult_1.toResult)(() => (0, child_process_1.fork)(file, [], { execArgv }));
43
- if (err) {
44
- return reject(new Error(`failed to create worker for ${file}`));
52
+ let worker;
53
+ try {
54
+ worker = createWorker(file);
55
+ }
56
+ catch (error) {
57
+ return reject(error);
45
58
  }
46
59
  numWorkers++;
47
60
  currentSpecFileIndex++;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kizu",
3
- "version": "3.9.2-next.3",
3
+ "version": "3.9.2-next.4",
4
4
  "description": "An easy-to-use, fast, and defensive Typescript/Javascript test runner designed to help you to write simple, readable, and maintainable tests.",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",