pnpm Catalogs Fix
Automatically resolves broken pnpm catalog references across pnpm-workspace.yaml and package.json files. The workflow de-references nested catalog: values, reconciles catalog definitions, and rewrites package dependencies so every consumer points back to the catalog.
Example
Resolve chained catalog entries
Before:
yaml
After:
yaml
Enforce catalog usage in packages
Before:
json
After:
json
Usage
Via Codemod CLI (Recommended)
bash
Direct Execution
Run TypeScript directly with Node.js 20.6+ (no build required):
bash
Or specify workspace path:
bash
Alternatively, build and run the compiled JavaScript:
bash
How It Works
The codemod uses @codemod.com/workflow API (version 0.0.31) to:
- Locate workspace: Automatically finds
pnpm-workspace.yamlwith catalog definitions - Resolve catalog chains: Recursively resolves
catalog:references pointing to other catalogs - Fix workspace catalogs: Updates
pnpm-workspace.yamlwith resolved versions - Normalize package.json: Replaces explicit versions with
catalog:references where appropriate - Report changes: Provides detailed output of all fixes applied
The workflow locates pnpm-workspace.yaml, resolves catalog chains, normalises catalog definitions, and rewrites any workspace packages to reference the catalog version.
Technical Details
- Runtime: Node.js 20.6+ with native TypeScript support (
--experimental-strip-types) - Language: TypeScript (ESM)
- Dependencies:
@codemod.com/workflow0.0.31 - Workflow Version: codemod.com workflow schema v1
Requirements
- Node.js 20.6+ (for native TypeScript support)
- pnpm workspace with
pnpm-workspace.yaml