Skip to content

Conversation

@kvz
Copy link
Member

@kvz kvz commented Dec 1, 2025

Summary:

  • mocha/chai -> vitest
  • eslint/prettier -> biome
  • callbacks & Q -> async/await
  • javascript -> typescript
  • upgrade all deps
  • e2e test coverage 28% -> 65%
  • yarn 3 -> 4
  • request -> native fetch
  • sync i/o calls -> async i/o
  • handrolled cli parsing -> clipanion
  • leverage tryCatch.ts where sensible

@kvz kvz changed the title Revamp (mocha->vitest, eslint->biome, etc) Revamp (mocha->vitest, eslint->biome, async/await, typescript, etc) Dec 1, 2025
- Upgrade node-watch, recursive-readdir, image-size, rimraf, fakefile, request
- Remove Q promise library in favor of native async/await and fs/promises
- Update tests to use modern async/await syntax
- Fix image-size API change (now requires Uint8Array)
- Remove @types/q and Q from tsconfig.json types

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@kvz kvz changed the title Revamp (mocha->vitest, eslint->biome, async/await, typescript, etc) Modernize transloadify Dec 1, 2025
kvz and others added 15 commits December 1, 2025 20:46
Convert all source files and tests from JavaScript to TypeScript with
strict typing. Uses tsx for runtime execution, zod for runtime validation
schemas, and IOutputCtl interface pattern for test dependency injection.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Leverage alphalib/tryCatch to simplify try-catch blocks in:
- bills.ts
- notifications.ts
- templates.ts (get, delete, sync functions)
- assemblies.ts (get, delete, replay functions)

This removes the need for let declarations before try blocks
and makes the code flow more linear.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add tsconfig.build.json for building to dist/
- Update package.json with prepack script, exports, and bin paths
- Change bin/cmd.ts shebang from tsx to node
- Lower Node engine requirement from >=22 to >=20
- Move dotenv to dependencies (needed at runtime)
- Move tsx to devDependencies (only for development)
- Remove obsolete cli.test.js (tested old Parser.js)
- Add dist/ and tsbuildinfo to .gitignore

Now `npm pack` / `npm publish` will include transpiled JS
that works on Node 20+ without tsx.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Simplifies dist output - all files now in dist/ root instead of
dist/bin/ and dist/src/.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@kvz
Copy link
Member Author

kvz commented Dec 2, 2025

Closing in favor of: transloadit/node-sdk#268

@kvz kvz closed this Dec 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants