Skip to content

Commit 1ae1170

Browse files
Migrate toolchain from npm/Node.js to Bun + NX (#78)
* Migrate toolchain from npm/Node.js to Bun + NX Replace npm with Bun as package manager and backend runtime, add NX for build caching and task orchestration. Switch from native bcrypt to bcrypt-ts for cross-runtime compatibility. Fix Tailwind CSS v4 PostCSS configuration. - Bun as package manager and backend runtime (replaces npm + tsx) - NX lightweight/inferred mode for cached build/lint/test/type-check - bcrypt-ts (ESM-only) with Jest transform configuration - Tailwind v4: @tailwindcss/postcss plugin, @import + @config directives - Updated CI workflows, justfile, pre-commit hooks, and documentation * Address PR review feedback from CodeRabbit and Copilot - Fix nx.json type-check to depend on own build + dependency builds, ensuring Next.js generates .next/types/routes.d.ts before type-check - Fix bcrypt-ts description in tech.md (not truly cross-runtime) * fix(deps): remove express-async-errors (incompatible with Express 5) Express 5 has built-in support for async error handling, making the express-async-errors package unnecessary. Additionally, express-async-errors requires express@^4.16.2 which conflicts with express@^5.1.0. This fixes the peer dependency conflict: - express-async-errors@3.1.1 requires express@^4.16.2 (peer dependency) - Project uses express@^5.1.0 Co-Authored-By: Warp <agent@warp.dev> * Replace ESLint + Prettier with Biome for linting and formatting Single Rust-based tool replaces 8+ ESLint plugins and Prettier. Removes all eslint-disable comments (76 in source, converted 5 to biome-ignore where justified). Adds biome.json overrides for test/example files. * Update project guidance and steering docs for Bun + Hono + Drizzle stack Revise architecture direction: Bun runtime with Hono framework, PostgreSQL with Drizzle ORM, Turborepo with Bun workspaces, bun:test for testing, and Biome for linting/formatting. * Update migration specs and tasks for Bun + Hono + Drizzle architecture Revise design doc, requirements, and task breakdown to reflect the new stack direction with Hono framework, PostgreSQL/Drizzle ORM, and Bun-native tooling. * Add reference to @AGENTS.md in CLAUDE.md Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> * Revise AGENTS.md for Bun + Hono + PostgreSQL/Drizzle stack Align AI agent guidance with updated steering docs and MERN_GUIDANCE.md. Replaces all MERN/Express/MongoDB/Jest references with the new stack direction: Hono, Drizzle ORM, bun:test, Biome, Turborepo, and Vite. * Add .claude.local.md to .gitignore Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> * fix(biome): disable formatter for auto-generated next-env.d.ts The pre-commit hook was failing because Biome's formatter flagged next-env.d.ts (double quotes vs single quotes). This file is auto-generated by Next.js and should not be formatted. The linter was already disabled for it; this adds the formatter exclusion. --------- Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> Co-authored-by: Warp Agent <agent@warp.dev>
1 parent 074a5ab commit 1ae1170

90 files changed

Lines changed: 3887 additions & 19279 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.bun-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1.3.9

.github/workflows/ci.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,22 @@ jobs:
1515
DOCKER_HOST: unix:///var/run/docker.sock
1616
steps:
1717
- uses: actions/checkout@v5
18+
with:
19+
fetch-depth: 0
20+
21+
- uses: oven-sh/setup-bun@v2
22+
with:
23+
bun-version-file: '.bun-version'
1824

1925
- uses: actions/setup-node@v5
2026
with:
2127
node-version-file: '.node-version'
22-
cache: npm
2328

2429
- name: Install just
2530
uses: extractions/setup-just@v1
2631

2732
- name: Install dependencies
28-
run: npm install
33+
run: bun install
2934

3035
- name: Verify Docker is available for Testcontainers
3136
run: |

.github/workflows/copilot-setup-steps.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,25 @@ jobs:
1313
steps:
1414
- uses: actions/checkout@v5
1515

16+
- uses: oven-sh/setup-bun@v2
17+
with:
18+
bun-version-file: '.bun-version'
19+
1620
- uses: actions/setup-node@v5
1721
with:
1822
node-version-file: '.node-version'
19-
cache: npm
2023

2124
- name: Install just
2225
uses: extractions/setup-just@v1
2326

24-
- name: Install root dependencies
25-
run: npm install
26-
27-
- name: Install workspace dependencies
28-
run: npm install --workspaces
27+
- name: Install dependencies
28+
run: bun install
2929

3030
- name: Build shared package
31-
run: npm run build -w shared
31+
run: bun run --filter '@hashhive/shared' build
3232

3333
- name: Run type checking
34-
run: npm run type-check --workspaces
34+
run: bun run --filter '*' type-check
3535

3636
- name: Verify Docker is available for Testcontainers
3737
run: |

.github/workflows/fix-failing-checks.yml

Lines changed: 0 additions & 179 deletions
This file was deleted.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Dependencies
22
node_modules/
3+
package-lock.json
34
npm-debug.log*
45
yarn-debug.log*
56
yarn-error.log*
@@ -44,3 +45,5 @@ temp/
4445
# Test results
4546
frontend/test-results/
4647
frontend/playwright-report/
48+
.nx/
49+
.claude.local.md

0 commit comments

Comments
 (0)