Skip to content

refactor: migrate to bun #188

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

alanrsoares
Copy link

@alanrsoares alanrsoares commented Aug 19, 2025

Summary

This PR migrates the gno-js-client project from Yarn to Bun as the primary package manager and test runner. The migration includes comprehensive updates to the build system, TypeScript configuration, CI/CD workflows, and documentation to leverage Bun's performance benefits and modern tooling.

Key Changes:

  • Package Manager Migration: Replaced Yarn with Bun for dependency management and script execution
  • Test Runner Upgrade: Migrated from Jest to Bun's built-in test runner for faster test execution
  • TypeScript Modernization: Updated to ES2022/ESNext modules with strictest configuration
  • CI/CD Updates: Modified GitHub Actions workflows to use Bun instead of Yarn
  • Documentation: Updated README with Bun-specific instructions while maintaining compatibility

Benefits:

  • Performance: Bun provides significantly faster dependency installation and test execution
  • Modern Tooling: Leverages latest ES module standards and TypeScript features
  • Simplified Workflow: Unified package manager, test runner, and bundler in one tool
  • Better Developer Experience: Faster feedback loops and improved caching

- Remove yarn.lock, .yarnrc.yml, and jest.config.json
- Add bun.lock for dependency management
- Update package.json scripts to use bun commands
- Replace Jest with Bun's built-in test runner
- Update dependencies to use @types/bun instead of @types/jest
- Add new test scripts: test:watch and test:coverage
- Extend from @tsconfig/strictest for better type safety
- Update target to ES2022 and module to ESNext
- Change moduleResolution to bundler for modern bundlers
- Add @types/bun to types array for Bun runtime support
- Configure verbatimModuleSyntax for explicit import/export
- Update include/exclude patterns for better test organization
- Disable some strictest options that may cause issues with existing code
- Add Bun setup step using oven-sh/setup-bun@v1 action
- Update cache configuration to use Bun's cache directory
- Replace yarn install with bun install
- Update test command to use bun test
- Update lint commands to use bun run eslint and bun run prettier
- Configure cache keys to use bun.lock instead of yarn.lock
- Update installation instructions to prioritize Bun
- Add comprehensive testing section with Bun commands
- Include test:watch and test:coverage examples
- Maintain npm and yarn installation options for compatibility
- Update import/export statements to use modern ES module syntax
- Update eslint configuration for better ES module support
- Ensure compatibility with new TypeScript configuration
- Maintain backward compatibility while modernizing code structure
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.

1 participant