Skip to content

Conversation

@netbonus
Copy link
Contributor

Summary

  • Replace ESLint + Prettier with Biome for linting and formatting
  • Add Turborepo for build orchestration and caching
  • Update CI workflow to leverage Turborepo caching

Changes

Added:

  • biome.json - Root Biome config with linting and formatting rules
  • packages/sdk/biome.json - SDK-specific Biome config extending root
  • turbo.json - Turborepo task definitions for lint, typecheck, build, test

Removed:

  • .prettierrc, .prettierignore - Replaced by Biome formatter
  • packages/sdk/eslint.config.mjs - Replaced by Biome linter

Modified:

  • .github/workflows/build-test.yml - Use Turborepo with GitHub Actions cache
  • .gitignore - Add .turbo cache directory
  • package.json - Add turbo and @biomejs/biome deps, update scripts
  • All source files reformatted with Biome

Benefits

  • Faster linting: Biome is ~10-100x faster than ESLint
  • Unified tooling: Single tool for linting + formatting
  • CI caching: Turborepo caches unchanged tasks across runs
  • Simpler config: Less configuration files to maintain

Test plan

  • pnpm run lint - passes (6 warnings for unused params, acceptable)
  • pnpm run typecheck - passes
  • pnpm run build - passes
  • pnpm test - passes (152 tests)

Replace ESLint + Prettier with Biome for linting and formatting.
Add Turborepo for build orchestration and caching.

Changes:
- Add biome.json configs (root + sdk package)
- Add turbo.json with lint, typecheck, build, test tasks
- Update CI workflow to use Turborepo with GitHub Actions cache
- Remove .prettierrc, .prettierignore, eslint.config.mjs
- Reformat all source files with Biome
- Add .turbo to .gitignore

Benefits:
- Faster linting (Biome is ~10-100x faster than ESLint)
- Unified tool for lint + format (less config, fewer deps)
- Turborepo caching speeds up CI and local dev
- Simpler toolchain to maintain
- Fix node:buffer imports (use node: protocol)
- Fix regex control characters with biome-ignore comments
- Add explicit types to implicit any let declarations
- Fix React Button type and useEffect dependencies
- Fix non-null assertions with proper guards
- docs: fix tsconfig include path and add Layout props interface
- example: update imports to use workspace SDK, add component prop types
- sdk: add type assertions for currency literals and getAddresses returns
- sdk: add curveType/hashType to ETH_MSG signing requests in tests
- sdk: use public getFwVersion() getter instead of private property
Use unrolled loop pattern for multi-line comments to avoid exponential
backtracking on malicious inputs like ',/**//**//**/' patterns.
Remove hardcoded pnpm version 9 from workflows to use the packageManager
field from package.json (pnpm@10.6.2) instead.
Remove custom lineWidth (240) and indentStyle from biome.json to use
defaults. Reformat all files to 80-char line width.
Convert all indentation from tabs to 2-space indent for consistency.
@netbonus netbonus requested review from hmrkx and yilmazbahadir and removed request for yilmazbahadir January 21, 2026 20:26
Copy link
Contributor

@hmrkx hmrkx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jan 21, 2026

Open in StackBlitz

npm i https://pkg.pr.new/GridPlus/gridplus-sdk@697

commit: 18f0ce2

@netbonus netbonus force-pushed the feat/turborepo-biome branch from 0d3cab8 to 42356dd Compare January 21, 2026 20:56
- Add @gridplus/btc package with Biome linting
- Add btc xpub utilities to SDK
- Update root scripts to include @gridplus/btc in CI
- Add @types/node to docs package
- Fix e2e args passthrough in CI
@netbonus netbonus force-pushed the feat/turborepo-biome branch from d4c0b8e to 21785cc Compare January 21, 2026 21:46
Merged feat/btc-package from dev, preserving turborepo/biome config:
- Keep turbo scripts in root package.json
- Keep biome linting in @gridplus/btc package
- Keep Number.parseInt/Number.parseFloat (biome preference)
- Keep explicit null checks in getAllXpubs
Turborepo sandboxes environment variables by default. Add passThroughEnv
to the e2e task to allow CI-defined variables (DEVICE_ID, PASSWORD, etc.)
to reach the test runner.
@netbonus netbonus merged commit 7a63b23 into dev Jan 22, 2026
7 checks passed
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.

3 participants