Skip to content

Set up the monorepo ​

Match the toolchain ​

Use Node >=22.12.0 and pnpm 10.34.5, as declared by the root package.json. Package consumers have their own engine and peer requirements; see Installation.

bash
pnpm install --frozen-lockfile
pnpm build

The workspace includes packages, integration-test, and wiki. Build dependencies before checking a package that imports their outputs.

Work on one package ​

bash
pnpm --filter @ahoo-wang/fetcher-react... build
pnpm --filter @ahoo-wang/fetcher-react test
pnpm --filter @ahoo-wang/fetcher exec vitest run test/fetcher.test.ts

The trailing ... includes workspace dependencies. Read each package.json for its scripts and each Vitest config for its environment. Do not assume tests live under src.

Keep the diff reviewable ​

Use strict TypeScript, ES modules, type-only imports, and Apache headers. Root pnpm lint applies fixes and pnpm format rewrites the repository; prefer checks limited to changed files and inspect their diff.

Get approval before adding packages or changing root TypeScript/build configuration unless the task already authorizes it. External dependency versions belong in the workspace catalog; internal dependencies use workspace protocol. Align package versions using pnpm update-version <version> when a version change is authorized.

Released under the Apache License 2.0.