Skip to content

Commit d7cff6a

Browse files
authored
chore: migrate to isows (wevm#1312)
* chore: migrate to isows * chore: changeset * fix: ts * chore: remove isows * chore: env tests * biome * chore: environments
1 parent 43c0b72 commit d7cff6a

Some content is hidden

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

58 files changed

+449
-826
lines changed

.changeset/config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@
1313
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
1414
"onlyUpdatePeerDependentsWhenOutOfRange": true
1515
},
16-
"ignore": ["example-*", "playground-*", "site", "test"]
16+
"ignore": ["example-*", "test-*", "site", "test"]
1717
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"viem": patch
3+
---
4+
5+
Migrated to [isows](https://github.com/wagmi-dev/isows).

.github/workflows/verify.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,56 @@ jobs:
111111
with:
112112
token: ${{ secrets.CODECOV_TOKEN }}
113113

114+
test-envs:
115+
name: Test Environments
116+
runs-on: ubuntu-latest
117+
strategy:
118+
matrix:
119+
type: ['bun', 'node-18', 'node-20', 'node-latest', 'next', 'vite']
120+
include:
121+
- type: bun
122+
runtime: bun
123+
- type: node-18
124+
node-version: 18
125+
runtime: node
126+
- type: node-20
127+
node-version: 20
128+
runtime: node
129+
- type: node-latest
130+
node-version: latest
131+
runtime: node
132+
- type: next
133+
runtime: next
134+
- type: vite
135+
runtime: vite
136+
137+
steps:
138+
- name: Clone repository
139+
uses: actions/checkout@v4
140+
141+
- name: Set up Bun
142+
if: ${{ matrix.runtime == 'bun' }}
143+
uses: oven-sh/setup-bun@v1
144+
145+
- name: Set up Node
146+
if: ${{ matrix.runtime == 'node' }}
147+
uses: actions/setup-node@v3
148+
with:
149+
node-version: ${{ matrix.node-version }}
150+
151+
- name: Install Playwright Browsers
152+
if: ${{ matrix.runtime == 'next' || matrix.runtime == 'vite' }}
153+
run: npx playwright install --with-deps
154+
155+
- name: Install dependencies
156+
uses: ./.github/actions/install-dependencies
157+
158+
- name: Build
159+
run: bun run build
160+
161+
- name: Run tests
162+
run: bun run test:env:${{ matrix.runtime }}
163+
114164
vectors:
115165
name: Vectors
116166
runs-on: ubuntu-latest

biome.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"_cjs",
66
"_esm",
77
"_types",
8+
".next",
89
"**/node_modules",
910
"CHANGELOG.md",
1011
"cache",
@@ -30,6 +31,9 @@
3031
"a11y": {
3132
"useButtonType": "off"
3233
},
34+
"complexity": {
35+
"noBannedTypes": "off"
36+
},
3337
"correctness": {
3438
"noUnusedVariables": "error"
3539
},

bun.lockb

20.6 KB
Binary file not shown.

environments/bun/index.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { http, createPublicClient, webSocket } from 'viem'
2+
import { mainnet } from 'viem/chains'
3+
4+
const client = createPublicClient({
5+
chain: mainnet,
6+
transport: http(),
7+
})
8+
9+
const webSocketClient = createPublicClient({
10+
chain: mainnet,
11+
transport: webSocket(
12+
'wss://eth-mainnet.g.alchemy.com/v2/4iIl6mDHqX3GFrpzmfj2Soirf3MPoAcH',
13+
),
14+
})
15+
16+
await client.getBlockNumber()
17+
await webSocketClient.getBlockNumber()
18+
19+
process.exit(0)

environments/bun/package.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"name": "test-bun",
3+
"private": true,
4+
"type": "module",
5+
"scripts": {
6+
"test": "bun index.ts"
7+
},
8+
"dependencies": {
9+
"viem": "file:../../src/"
10+
}
11+
}

environments/next/next-env.d.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/// <reference types="next" />
2+
/// <reference types="next/image-types/global" />
3+
4+
// NOTE: This file should not be edited
5+
// see https://nextjs.org/docs/basic-features/typescript for more information.

environments/next/next.config.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/** @type {import('next').NextConfig} */
2+
const _nextConfig = {}
3+
4+
module.exports = {
5+
webpack: (config) => {
6+
config.externals.push({
7+
'utf-8-validate': 'commonjs utf-8-validate',
8+
bufferutil: 'commonjs bufferutil',
9+
})
10+
return config
11+
},
12+
}

environments/next/package.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "test-next",
3+
"version": "0.1.0",
4+
"private": true,
5+
"scripts": {
6+
"dev": "next dev",
7+
"build": "next build",
8+
"start": "next start",
9+
"lint": "next lint",
10+
"test": "playwright test"
11+
},
12+
"dependencies": {
13+
"react": "^18",
14+
"react-dom": "^18",
15+
"next": "13.5.4",
16+
"viem": "file:../../src/"
17+
},
18+
"devDependencies": {
19+
"@playwright/test": "^1.38.1",
20+
"@types/node": "^20",
21+
"@types/react": "^18",
22+
"@types/react-dom": "^18",
23+
"typescript": "^5"
24+
}
25+
}

0 commit comments

Comments
 (0)