feat(dev): Add development tools and custom executors#25
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds development tools and custom Nx executors to support plugin development workflows. It builds upon the Biome infrastructure from PR #21 and prepares for integration with the skills package from PR #24.
Changes:
- Refactored dev-proxy executor to use AsyncGenerator pattern for better progress reporting
- Added lint targets to dev-proxy and check-mirror-exists executors using Biome
- Enhanced testability with __noExit parameter for SIGINT handling in tests
- Removed obsolete ESLint directive from check-mirror-exists executor
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/executors/dev-proxy/schema.json | Added internal testing parameters (__runExecutor, __spawnSync, __noExit) for better test isolation |
| tools/executors/dev-proxy/project.json | Added Biome lint target to enforce code quality standards |
| tools/executors/dev-proxy/executor.ts | Converted to AsyncGenerator pattern, added __noExit support, and added debug logging |
| tools/executors/dev-proxy/executor.test.ts | Updated tests to handle AsyncGenerator pattern with .next() calls |
| tools/executors/check-mirror-exists/project.json | Added Biome lint target for consistency |
| tools/executors/check-mirror-exists/executor.ts | Removed obsolete ESLint max-lines directive as Biome handles this |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| // Failed to stop iterator | ||
| } | ||
| }); | ||
| console.log(`Started build target for ${projName} via @nx/devkit.runExecutor`); |
There was a problem hiding this comment.
This console.log statement appears to be debug output. According to the biome.json configuration, console.log is not allowed by default (only warn, error, info, and debug are permitted). Consider either removing this line or changing it to console.info for informational output.
|
|
||
| if (!started) { | ||
| try { | ||
| console.log(`Falling back to CLI watcher for ${projName}`); |
There was a problem hiding this comment.
This console.log statement appears to be debug output. According to the biome.json configuration, console.log is not allowed by default (only warn, error, info, and debug are permitted). Consider either removing this line or changing it to console.info for informational output.
| console.log(`Falling back to CLI watcher for ${projName}`); | |
| console.info(`Falling back to CLI watcher for ${projName}`); |
| if (options.apply === false) args.push('--no-apply'); | ||
| args.push(...requestedPlugins); | ||
|
|
||
| console.log('Running dev proxy runtime:', ['bunx', 'tsx', script, ...args].join(' ')); |
There was a problem hiding this comment.
This console.log statement appears to be debug output. According to the biome.json configuration, console.log is not allowed by default (only warn, error, info, and debug are permitted). Consider either removing this line or changing it to console.info for informational output.
| const sigintHandler = async () => { | ||
| if (exiting) return; | ||
| exiting = true; | ||
| console.log('\nInterrupted. Stopping build watchers and exiting...'); |
There was a problem hiding this comment.
This console.log statement appears to be debug output. According to the biome.json configuration, console.log is not allowed by default (only warn, error, info, and debug are permitted). Consider either removing this line or changing it to console.info for informational output.
| console.log('\nInterrupted. Stopping build watchers and exiting...'); | |
| console.info('\nInterrupted. Stopping build watchers and exiting...'); |
| const runExecutorImpl = options.__runExecutor ?? nxRunExecutor; | ||
| const spawnSyncImpl = options.__spawnSync ?? spawnSync; | ||
|
|
||
| console.log('dev-proxy: workspaceRoot=', workspaceRoot); |
There was a problem hiding this comment.
This console.log statement appears to be debug output that was left in. According to the biome.json configuration, console.log is not allowed by default (only warn, error, info, and debug are permitted). Consider either removing this line or changing it to console.info or console.debug for informational output.
| console.log('dev-proxy: workspaceRoot=', workspaceRoot); | |
| console.debug('dev-proxy: workspaceRoot=', workspaceRoot); |
2220e54 to
ab85df2
Compare
- Add dev-proxy executor for plugin development workflow - Add check-mirror-exists executor for CI/CD validation - Independent infrastructure - no package dependencies - Enables development workflows across the monorepo These executors provide essential tooling for plugin development and CI/CD pipeline validation.
ab85df2 to
bffbb6f
Compare
Summary
Development utilities including custom Nx executors and refactored dev tools.
Changes
Dependencies
Blocks
Testing
bunx nx test devbunx nx run dev-proxy:test