pnpm, TypeScript 7, Oxlint and Oxfmt mistakes to avoid.
Look up a version with pnpm view <package> version when you add or bump it, and pin it exactly in the pnpm-workspace.yaml catalog. Workspaces reference it as "catalog:". Do not rely on a version you remember.
minimumReleaseAge (1440 minutes) blocks packages published less than a day ago. Do not disable it or add broad excludes to install a new release. Pick the newest version that clears the gate, and add a narrow, commented exclude only for the packages already listed in the toolchain rule.
Typecheck runs tsc --noEmit --checkers 4 from TypeScript 7. Do not add TypeScript 5 or 6 shims, and do not enable Oxlint's typeCheck option. Omit optional properties instead of passing undefined, and read index signatures with obj["key"].
Each workspace has its own oxlint.config.ts that extends presets from @workspace/ox-config. Run pnpm lint (Turbo) for workspaces and pnpm lint:root for root tooling files. Fix the code when a rule fires. Do not turn a rule off or add a disable comment to get a green run.
The anti-slop plugin requires a // SAFETY: comment above every as assertion that explains why it holds. Prefer a schema parse or a typed helper, and never write as unknown as T.
Oxfmt formats with semicolons at print width 80. Run pnpm format (root files plus every workspace). A direct oxfmt . at the root also rewrites the vendored packages/ox-config/anti-slop code, which is out of format scope.
Last updated on