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
15 changes: 5 additions & 10 deletions .github/workflows/codspeed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,15 @@ jobs:
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6

- name: Install pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6

- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
- name: Setup Vite+
uses: voidzero-dev/setup-vp@v1
with:
node-version: '22'
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile
cache: true
sfw: true

- name: Run benchmarks
uses: CodSpeedHQ/action@v4
with:
mode: simulation
run: pnpm vitest bench --run
run: vp test bench --run
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
node_modules/
coverage/
test/.tmp*
package-lock.json
dist/
*.tsbuildinfo
src/**/*.js
Expand All @@ -17,3 +16,12 @@ test/fixtures/ts-esm/*.js
.eslintcache
.tshy*
.idea/

# Yarn (berry, node-modules linker)
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*
8 changes: 8 additions & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
nodeLinker: node-modules

# Mirror the former pnpm `minimumReleaseAgeExclude`: exclude the freshly
# published vite-plus packages from yarn's minimum release age gate.
npmPreapprovedPackages:
- '@voidzero-dev/*'
- 'vite-plus'
- '@vitest/*'
Comment on lines +5 to +8

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

In Yarn Berry, npmPreapprovedPackages expects exact package names (parsed as package idents) and does not support glob patterns or wildcards like @voidzero-dev/* or @vitest/*. Because of this, these patterns will not match the actual packages, and Yarn will still quarantine them if they are freshly published.

To resolve this, you can either:

  1. List the exact package names (e.g., @voidzero-dev/vite-plus-core).
  2. Disable the minimum release age check entirely by setting npmMinReleaseAge: 0 in .yarnrc.yml if that is acceptable for this repository.
npmMinReleaseAge: 0

24 changes: 12 additions & 12 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,38 @@ urllib is a Node.js HTTP client library built on top of [undici](https://undici.
## Common Commands

```bash
# Install dependencies (uses pnpm)
pnpm install
# Install dependencies (uses yarn under the hood)
vp install

# Run all tests
pnpm test
vp test run

# Run a single test file
pnpm test test/options.timeout.test.ts
vp test run test/options.timeout.test.ts

# Run tests matching a pattern
pnpm test -t "should timeout"
vp test run -t "should timeout"

# Run tests with debug output
NODE_DEBUG=urllib:* pnpm test
NODE_DEBUG=urllib:* vp test run

# Lint code
pnpm run lint
vp lint

# Format code
pnpm run fmt
vp fmt

# Type check
pnpm run typecheck
vp run typecheck

# Build the project (outputs to dist/)
pnpm run build
vp run build

# Run benchmarks
pnpm run bench
vp run bench

# Run coverage
pnpm run cov
vp run cov
```

## Architecture
Expand Down
8 changes: 5 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,10 @@
"tshy-after": "^1.4.1",
"typescript": "^6.0.0",
"vite": "npm:@voidzero-dev/vite-plus-core@0.2.1",
"vite-plus": "0.2.1",
"vitest": "4.1.9"
"vite-plus": "0.2.1"
},
"resolutions": {
"vite": "npm:@voidzero-dev/vite-plus-core@0.2.1"
},
"tshy": {
"exports": {
Expand All @@ -112,5 +114,5 @@
"engines": {
"node": ">= 22.19.0"
},
"packageManager": "pnpm@11.7.0"
"packageManager": "yarn@4.17.0"
}
Loading
Loading