@granga/nx-executors
v1.0.0
Published
Custom Nx executors collection including ts-runner for interactive TypeScript execution
Maintainers
Readme
@granga/nx-executors
Custom Nx executors collection for enhanced development workflows.
Executors
ts-runner
Execute TypeScript files using ts-node with full interactive terminal support. This executor is designed to run TypeScript scripts that require user input, which is not possible with Nx's built-in run-commands executor.
Usage
Add the executor to your project.json or workspace.json:
{
"targets": {
"run-script": {
"executor": "@granga/nx-executors:ts-runner",
"options": {
"file": "scripts/my-script.ts"
}
}
}
}Then run it:
nx run-script my-projectOptions
| Option | Type | Description | Required |
|--------|------|-------------|----------|
| file | string | Path to the TypeScript file to execute | ✅ |
| tsNodeOptions | object | Options to pass to ts-node | ❌ |
| tsNodeOptions.transpileOnly | boolean | Use TypeScript's faster transpileOnly mode | ❌ |
| tsNodeOptions.compilerOptions | object | TypeScript compiler options | ❌ |
| tsNodeOptions.project | string | Path to TypeScript project file | ❌ |
| tsNodeOptions.require | string[] | Modules to require before execution | ❌ |
| args | string[] | Arguments to pass to the TypeScript script | ❌ |
| env | object | Environment variables to set | ❌ |
| cwd | string | Current working directory for script execution | ❌ |
Example Configuration
{
"targets": {
"interactive-script": {
"executor": "@granga/nx-executors:ts-runner",
"options": {
"file": "scripts/setup.ts",
"args": ["--production"],
"env": {
"NODE_ENV": "production"
},
"tsNodeOptions": {
"transpileOnly": true,
"compilerOptions": {
"strict": true
}
}
}
}
}
}Key Features
- Interactive Terminal Support: Unlike
nx run-commands, this executor preserves stdin/stdout/stderr streams, allowing scripts to prompt for user input - Full ts-node Integration: Complete support for all ts-node options and TypeScript compiler configurations
- Environment Management: Set custom environment variables and working directories
- Argument Passing: Pass command-line arguments to your TypeScript scripts
- Signal Handling: Proper handling of SIGINT and SIGTERM for graceful script termination
Installation
npm install @granga/nx-executors
# or
yarn add @granga/nx-executors
# or
pnpm add @granga/nx-executorsRequirements
- Node.js >= 16
- Nx >= 16.0.0
- TypeScript >= 4.0.0
License
ISC
Contributing
Issues and pull requests are welcome on GitHub.
