diff --git a/editors/vscode/package.json b/editors/vscode/package.json index 5362211f36610..bed6c82d7f683 100644 --- a/editors/vscode/package.json +++ b/editors/vscode/package.json @@ -196,7 +196,7 @@ "install-extension": "code --install-extension oxc_language_server.vsix --force", "server:build:debug": "cross-env CARGO_TARGET_DIR=./target cargo build -p oxc_language_server", "server:build:release": "cross-env CARGO_TARGET_DIR=./target cargo build -p oxc_language_server --release", - "test": "pnpm run compile && vscode-test", + "test": "cross-env TEST=true pnpm run compile && vscode-test", "type-check": "tsc --noEmit" }, "devDependencies": { diff --git a/editors/vscode/rolldown.config.ts b/editors/vscode/rolldown.config.ts index fba61b31cea32..60535cc013335 100644 --- a/editors/vscode/rolldown.config.ts +++ b/editors/vscode/rolldown.config.ts @@ -1,14 +1,26 @@ -import { defineConfig } from 'rolldown'; +import { defineConfig, type RolldownOptions } from 'rolldown'; +import { globSync } from 'tinyglobby'; + +const input: RolldownOptions['input'] = process.env.TEST === 'true' + ? globSync('tests/**/*.ts') + : ['client/extension.ts']; + +const output: RolldownOptions['output'] = { + sourcemap: true, + format: 'cjs', + banner: `"use strict";\n`, + minify: true, +}; + +if (process.env.TEST === 'true') { + output.dir = 'out'; +} else { + output.file = 'out/main.js'; +} export default defineConfig({ - input: 'client/extension.ts', - output: { - file: 'out/main.js', - sourcemap: true, - format: 'cjs', - banner: `"use strict";\n`, - minify: true, - }, + input, + output, external: ['vscode'], platform: 'node', transform: {