Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 0 additions & 35 deletions .eslintrc.cjs

This file was deleted.

93 changes: 48 additions & 45 deletions .github/workflows/test-node.yml
Original file line number Diff line number Diff line change
@@ -1,80 +1,83 @@
name: Node.js Tests
name: Bun Tests

on:
push:
branches: [main, node-conversion]
branches: [main, solenoid-node]
paths:
- 'solenoid-node/**'
- 'src/**'
- 'tests/**'
- 'package.json'
- 'tsconfig.json'
- 'biome.json'
- '.github/workflows/test-node.yml'
pull_request:
branches: [main, node-conversion]
branches: [main, solenoid-node]
paths:
- 'solenoid-node/**'
- 'src/**'
- 'tests/**'
- 'package.json'
- 'tsconfig.json'
- 'biome.json'
- '.github/workflows/test-node.yml'

jobs:
test:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x, 22.x]

defaults:
run:
working-directory: solenoid-node

steps:
- uses: actions/checkout@v4
- name: Checkout code
uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: solenoid-node/package-lock.json
bun-version: latest

- name: Install dependencies
run: npm ci --legacy-peer-deps
run: bun install

- name: Type check
run: npm run typecheck
run: bun run typecheck

- name: Run tests
run: npm run test:run
run: bun test

- name: Run tests with coverage
run: npm run test:coverage
if: matrix.node-version == '20.x'

- name: Upload coverage reports
uses: codecov/codecov-action@v4
if: matrix.node-version == '20.x'
with:
files: solenoid-node/coverage/lcov.info
fail_ci_if_error: false
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: bun test --coverage

lint:
runs-on: ubuntu-latest

defaults:
run:
working-directory: solenoid-node

steps:
- uses: actions/checkout@v4
- name: Checkout code
uses: actions/checkout@v4

- name: Use Node.js 20.x
uses: actions/setup-node@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: 20.x
cache: 'npm'
cache-dependency-path: solenoid-node/package-lock.json
bun-version: latest

- name: Install dependencies
run: npm ci --legacy-peer-deps
run: bun install

- name: Lint
run: npm run lint
run: bun run lint

build:
runs-on: ubuntu-latest
needs: [test, lint]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
run: bun install

- name: Build
run: bun run build
47 changes: 47 additions & 0 deletions biome.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"$schema": "https://biomejs.dev/schemas/1.9.0/schema.json",
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"suspicious": {
"noExplicitAny": "warn",
"noArrayIndexKey": "warn"
},
"style": {
"noNonNullAssertion": "off",
"useImportType": "warn"
},
"complexity": {
"noForEach": "off"
},
"correctness": {
"useExhaustiveDependencies": "warn"
}
}
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 100
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"trailingCommas": "es5",
"semicolons": "always"
}
},
"files": {
"ignore": [
"node_modules",
"dist",
"coverage",
"*.min.js"
]
}
}
Loading