Skip to content

Commit bf9dfde

Browse files
Replace my-ts-node
1 parent df51ca2 commit bf9dfde

9 files changed

Lines changed: 64 additions & 132 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"test:update": "pnpm -r test:update",
3333
"test:update:subset": "pnpm -r test:update:subset",
3434
"generate-grammar": "pnpm -r generate-grammar",
35-
"transform-recorded-tests": "pnpm exec ./packages/common/scripts/my-ts-node.js ./packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts"
35+
"transform-recorded-tests": "c-tsx ./packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts"
3636
},
3737
"devDependencies": {
3838
"@eslint/config-helpers": "^0.5.3",

packages/cheatsheet-local/jest.config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ const config: Config = {
66
testEnvironment: "jsdom",
77
moduleNameMapper: {
88
...preactModuleNameMapper,
9-
"^@cursorless/cheatsheet$": "<rootDir>/../cheatsheet/src/index.ts",
109
"\\.(css|scss)$": "<rootDir>/src/test/styleMock.ts",
1110
},
1211
};

packages/common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"license": "MIT",
66
"type": "module",
77
"bin": {
8-
"my-ts-node": "./scripts/my-ts-node.js"
8+
"c-tsx": "./scripts/c-tsx.js"
99
},
1010
"exports": {
1111
".": "./src/index.ts",

packages/common/scripts/c-tsx.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr/bin/env node
2+
/* global process, console */
3+
4+
import { spawn } from "node:child_process";
5+
import { dirname, join } from "node:path";
6+
import { fileURLToPath } from "node:url";
7+
8+
const [fileToRun, ...childArgs] = process.argv.slice(2);
9+
10+
if (fileToRun == null) {
11+
console.error("Error: No input file specified.");
12+
console.error("Usage: c-tsx <file.ts> [script args...]");
13+
process.exit(1);
14+
}
15+
16+
const scriptDirectory = dirname(fileURLToPath(import.meta.url));
17+
const repoRoot = join(scriptDirectory, "../../..");
18+
19+
const child = spawn(
20+
process.platform === "win32" ? "tsx.cmd" : "tsx",
21+
[fileToRun, ...childArgs],
22+
{
23+
stdio: "inherit",
24+
env: {
25+
...process.env,
26+
CURSORLESS_REPO_ROOT: repoRoot,
27+
},
28+
},
29+
);
30+
31+
child.on("close", (code) => {
32+
process.exit(code ?? undefined);
33+
});

packages/common/scripts/my-ts-node.js

Lines changed: 0 additions & 108 deletions
This file was deleted.

packages/cursorless-org-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ init.lua
1717
And here is the call path when running Neovim tests on CI:
1818

1919
```
20-
.github/workflows/test.yml -> packages/test-harness/package.json -> my-ts-node src/scripts/runNeovimTestsCI.ts -> packages/test-harness/src/launchNeovimAndRunTests.ts
20+
.github/workflows/test.yml -> packages/test-harness/package.json -> c-tsx src/scripts/runNeovimTestsCI.ts -> packages/test-harness/src/launchNeovimAndRunTests.ts
2121
2222
launchNeovimAndRunTests.ts
2323
-> copies packages/test-harness/src/config/init.lua to default nvim config folder
@@ -215,7 +215,7 @@ if: runner.os == 'Linux' && matrix.app_version == 'stable'
215215
This triggers the script in `packages/test-harness/package.json`:
216216
217217
```json
218-
"test:neovim": "env CURSORLESS_MODE=test my-ts-node src/scripts/runNeovimTestsCI.ts",
218+
"test:neovim": "c-tsx src/scripts/runNeovimTestsCI.ts",
219219
```
220220
221221
This ends up calling the default function from `package/test-harness/src/scripts/runNeovimTestsCI.ts` which calls `launchNeovimAndRunTests()` from `packages/test-harness/src/launchNeovimAndRunTests.ts`:

packages/cursorless-vscode/package.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1291,15 +1291,15 @@
12911291
"bundle:watch": "pnpm run bundle:base --sourcemap --watch",
12921292
"bundle": "pnpm run bundle:base --minify",
12931293
"bundle:meta": "pnpm run bundle:base --metafile=meta.json",
1294-
"populate-dist": "my-ts-node ./src/scripts/populateDist/index.ts",
1295-
"init-launch-sandbox": "my-ts-node src/scripts/initLaunchSandbox.ts",
1296-
"preprocess-svg-hats": "my-ts-node src/scripts/preprocessSvgHats.ts",
1297-
"hat-adjustment-add": "my-ts-node src/scripts/hatAdjustments/add.ts",
1298-
"hat-adjustment-average": "my-ts-node src/scripts/hatAdjustments/average.ts",
1299-
"generate-grammar:base": "nearleyc src/keyboard/grammar/grammar.ne",
1300-
"ensure-grammar-up-to-date": "pnpm -s generate-grammar:base | diff -u src/keyboard/grammar/generated/grammar.ts -",
1301-
"generate-grammar": "pnpm generate-grammar:base -o src/keyboard/grammar/generated/grammar.ts",
1302-
"generate-railroad": "mkdir -p out && nearley-railroad src/keyboard/grammar/grammar.ne -o out/railroad.html",
1294+
"populate-dist": "c-tsx ./src/scripts/populateDist/index.ts",
1295+
"init-launch-sandbox": "c-tsx ./src/scripts/initLaunchSandbox.ts",
1296+
"preprocess-svg-hats": "c-tsx ./src/scripts/preprocessSvgHats.ts",
1297+
"hat-adjustment-add": "c-tsx ./src/scripts/hatAdjustments/add.ts",
1298+
"hat-adjustment-average": "c-tsx ./src/scripts/hatAdjustments/average.ts",
1299+
"generate-grammar:base": "nearleyc ./src/keyboard/grammar/grammar.ne",
1300+
"ensure-grammar-up-to-date": "pnpm -s generate-grammar:base | diff -u ./src/keyboard/grammar/generated/grammar.ts -",
1301+
"generate-grammar": "pnpm generate-grammar:base -o ./src/keyboard/grammar/generated/grammar.ts",
1302+
"generate-railroad": "mkdir -p out && nearley-railroad ./src/keyboard/grammar/grammar.ne -o out/railroad.html",
13031303
"test": "pnpm ensure-grammar-up-to-date",
13041304
"typecheck": "tsc",
13051305
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
@@ -1336,6 +1336,7 @@
13361336
"esbuild": "^0.27.4",
13371337
"fast-xml-parser": "^5.5.5",
13381338
"fs-extra": "^11.3.4",
1339-
"sinon": "^21.0.2"
1339+
"sinon": "^21.0.2",
1340+
"tsx": "^4.21.0"
13401341
}
13411342
}

packages/test-harness/package.json

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,25 @@
1313
}
1414
},
1515
"scripts": {
16-
"test": "my-ts-node src/scripts/runUnitTestsOnly.ts",
17-
"test:subset": "my-ts-node src/scripts/runUnitTestsOnly.ts --subset",
18-
"test:update": "my-ts-node src/scripts/runUnitTestsOnly.ts --update",
19-
"test:update:subset": "my-ts-node src/scripts/runUnitTestsOnly.ts --update --subset",
16+
"test": "c-tsx ./src/scripts/runUnitTestsOnly.ts",
17+
"test:subset": "c-tsx ./src/scripts/runUnitTestsOnly.ts --subset",
18+
"test:update": "c-tsx ./src/scripts/runUnitTestsOnly.ts --update",
19+
"test:update:subset": "c-tsx ./src/scripts/runUnitTestsOnly.ts --update --subset",
2020
"pretest:vscode": "pnpm run bundle:runner:vscode && pnpm run bundle:tests",
21-
"test:vscode": "my-ts-node src/scripts/runVscodeTestsCI.ts",
21+
"test:vscode": "c-tsx ./src/scripts/runVscodeTestsCI.ts",
2222
"pretest:neovim": "pnpm run bundle:runner:neovim && pnpm run bundle:tests",
23-
"test:neovim": "my-ts-node src/scripts/runNeovimTestsCI.ts",
23+
"test:neovim": "c-tsx ./src/scripts/runNeovimTestsCI.ts",
2424
"pretest:talonJs": "pnpm run bundle:tests",
25-
"test:talonJs": "my-ts-node src/scripts/runTalonJsTests.ts",
25+
"test:talonJs": "c-tsx ./src/scripts/runTalonJsTests.ts",
2626
"bundle:base": "bash ./scripts/compile-esbuild.sh",
2727
"bundle": "pnpm run bundle:runner:vscode && pnpm run bundle:runner:neovim && pnpm run bundle:tests",
2828
"bundle:runner:vscode": "pnpm run bundle:base ./src/runners/extensionTestsVscode.ts --outfile=dist/extensionTestsVscode.cjs",
2929
"bundle:runner:neovim": "pnpm run bundle:base ./src/runners/extensionTestsNeovim.ts --outfile=out/runners/extensionTestsNeovim.cjs",
3030
"bundle:tests": "bash ./scripts/build-tests.sh",
3131
"typecheck": "tsc",
3232
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build",
33-
"generate-test-subset-file": "my-ts-node ./src/scripts/generateTestSubsetFile.ts --always-open",
34-
"generate-test-subset-file-strict": "my-ts-node ./src/scripts/generateTestSubsetFile.ts --fail-if-not-exists"
33+
"generate-test-subset-file": "c-tsx ./src/scripts/generateTestSubsetFile.ts --always-open",
34+
"generate-test-subset-file-strict": "c-tsx ./src/scripts/generateTestSubsetFile.ts --fail-if-not-exists"
3535
},
3636
"dependencies": {
3737
"@cursorless/common": "workspace:*",
@@ -50,6 +50,7 @@
5050
"@vscode/test-electron": "^2.5.2",
5151
"cross-spawn": "^7.0.6",
5252
"mocha": "^11.7.5",
53+
"tsx": "^4.21.0",
5354
"web-tree-sitter": "^0.26.7"
5455
}
5556
}

pnpm-lock.yaml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)