Skip to content
Draft
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
16 changes: 8 additions & 8 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,21 @@ jobs:
with:
fetch-depth: 0 # Fetch the full history instead of a shallow clone

- uses: actions/setup-node@v4
- uses: oven-sh/setup-bun@v2
with:
node-version-file: '.nvmrc'

- name: Install pnpm
uses: pnpm/action-setup@v4
bun-version: "1.3.x"

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y rsync

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Lint & Format Check
run: bun run check

- name: Build All Packages
run: pnpm build:all
run: bun run build

- name: Test
run: pnpm test:all
run: bun test packages/*
19 changes: 8 additions & 11 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,32 +18,29 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch the full history instead of a shallow clone
- name: Use Node.js
uses: actions/setup-node@v4

- uses: oven-sh/setup-bun@v2
with:
node-version-file: '.nvmrc'
bun-version: "1.3.x"

- uses: browser-actions/setup-chrome@v1
- run: chrome --version

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y rsync

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Build packages
run: pnpm build:all
run: bun run build

- name: Run Jest tests
run: pnpm test:coverage
- name: Run tests with coverage
run: bun test --coverage --coverage-reporter=lcov packages/*

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
files: '**/coverage-final.json'
files: '**/lcov.info'
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
11 changes: 6 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,23 +29,24 @@ jobs:
node-version: '24'
registry-url: 'https://registry.npmjs.org'

- name: Install pnpm
uses: pnpm/action-setup@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: "1.3.x"

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y rsync

- name: Install Dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Build Packages
run: pnpm build:all
run: bun run build

- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v1
with:
# Release builds the packages and calls changeset publish
publish: pnpm release
publish: bun run release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ examples/

# compiled output
dist
*.tsbuildinfo
tmp
/out-tsc
main
Expand Down Expand Up @@ -42,6 +43,11 @@ testem.log
/typings
.next

# environment variables
.env
.env.*
!.env.example

# System Files
.DS_Store
Thumbs.db
Expand Down
29 changes: 22 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,35 @@ please refer to the table below.

### Prerequisites

This project uses Yarn 4.7.0 with Corepack for package management. To get started:
This project uses [Bun](https://bun.sh) for package management and testing. To get started:

1. **Enable Corepack** (if not already enabled):
1. **Install Bun** (if not already installed):
```bash
corepack enable
curl -fsSL https://bun.sh/install | bash
```

2. **Install dependencies**:
```bash
yarn install
bun install
```

The correct Yarn version will be automatically used thanks to the `packageManager` field in `package.json` and Corepack.

### Building

To build all packages and docs, run `pnpm install` then `pnpm build:all`
To build all packages, run:
```bash
bun run build
```

### Testing

```bash
bun test packages/*
```

### Linting & Formatting

This project uses [Biome](https://biomejs.dev) for linting and formatting:
```bash
bun run check # lint + format check
bun run check:fix # lint + format fix
```
81 changes: 44 additions & 37 deletions biome.json
Original file line number Diff line number Diff line change
@@ -1,39 +1,46 @@
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"vcs": {
"enabled": false,
"clientKind": "git",
"useIgnoreFile": false
},
"files": {
"ignoreUnknown": false,
"ignore": ["*/coverage/*", "*/dist/*", "packages/create-sei/templates/**"]
},
"formatter": {
"enabled": true,
"indentStyle": "tab",
"lineWidth": 160
},
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"correctness": {
"useExhaustiveDependencies": "off"
},
"style": {
"noUselessElse": "off"
}
}
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"jsxQuoteStyle": "double",
"trailingCommas": "none"
}
}
"$schema": "https://biomejs.dev/schemas/2.4.5/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": false,
"includes": ["packages/**/*.ts", "packages/**/*.tsx", "packages/**/*.css"]
},
"formatter": {
"enabled": true,
"formatWithErrors": false,
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf",
"lineWidth": 160
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"suspicious": {
"noExplicitAny": "warn"
}
}
},
"javascript": {
"formatter": {
"quoteStyle": "double"
}
},
"css": {
"parser": {
"tailwindDirectives": true
}
},
"assist": {
"actions": {
"source": {
"organizeImports": "on"
}
}
}
}
Loading
Loading