Refactor: Migrate packages/cli from MJS to TypeScript #3

Merged
xiaonuo merged 3 commits from fix/1-migrate-cli-to-typescript into main 2026-05-28 14:53:04 +00:00

3 Commits

Author SHA1 Message Date
xiaoju a894a1642b style(cli): apply biome formatting to test files
CI / check (pull_request) Successful in 45s
Fix import ordering and formatting in test files to pass biome checks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 10:20:53 +00:00
xiaoju 12343b05ae fix(cli): apply biome lint fixes and remove old MJS files
Apply biome auto-fixes:
- Sort imports: move type imports first in urec.ts and uconn.ts
- Remove inferrable type annotations (stdoutBuf, stderrBuf, backoff)

Complete migration:
- Delete old urec.mjs and uconn.mjs files

All biome checks now pass with no errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 10:20:09 +00:00
xiaoju 0c3624ddca refactor(cli): migrate packages/cli from MJS to TypeScript
Migrate urec and uconn CLI tools from plain JavaScript (.mjs) to TypeScript (.ts) with full type safety and strict mode enabled.

Changes:
- Created TypeScript configuration (tsconfig.json) with strict mode
- Migrated src/urec.mjs to src/urec.ts with proper type annotations
- Migrated src/uconn.mjs to src/uconn.ts with proper type annotations
- Added type declarations for @uncaged/dashboard-server/protocol
- Updated package.json with build script and bin entries pointing to dist/
- Added comprehensive test suites for type safety and functionality
- Added .gitignore to exclude built artifacts

Type Safety:
- No implicit any types throughout the codebase
- Explicit type annotations for all variables and functions
- Proper null safety with strictNullChecks
- Full type coverage for Node.js built-ins and external dependencies

Testing:
- 22 passing tests covering type safety, build config, and functionality
- Tests verify TypeScript compilation succeeds
- Tests verify executables work correctly with preserved shebangs
- Tests verify backward compatibility of CLI behavior

Build:
- TypeScript compiles successfully with no errors
- Built files maintain ESM format
- Shebang lines preserved in output
- Source maps generated for debugging

Resolves #1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 10:15:03 +00:00