Typescript CLI tools for generating styled PDF artifacts from structured text input.
Here’s a clean copy-paste section for your README:
This is a pnpm-based monorepo using TypeScript.
pnpm installEach package can be run independently in dev mode using tsx:
pnpm --filter @doc-tools/cvgen devpnpm --filter @doc-tools/docgen devRun ESLint across the entire monorepo:
pnpm lintFormat all files in the repository:
pnpm formatCheck formatting without modifying files:
pnpm check-formatThis repository uses Husky + lint-staged to automatically run:
- Prettier (formatting)
- ESLint (linting with auto-fix)
on every commit. No manual action is required when committing changes.
If committing via a GUI Git client (e.g. Fork), make sure to launch the app from the terminal:
open -a ForkThis ensures the app inherits your shell environment (PATH, pnpm, fnm, etc.). If the app is launched from the macOS Dock or Finder, Git hooks may fail due to missing pnpm in PATH.
This monorepo separates development and production execution.
Build a specific package:
pnpm --filter @doc-tools/cvgen build
pnpm --filter @doc-tools/docgen buildEach package outputs compiled JavaScript to:
dist/
Example:
packages/cvgen/dist/index.js
You can run the compiled CLI directly with Node:
node packages/cvgen/dist/index.jsThis is the production-equivalent execution path (no tsx involved).
| Mode | Command | Purpose |
|---|---|---|
| Dev | tsx src/index.ts |
Fast iteration |
| Production | node dist/index.js |
Real execution |
| Build | tsup via package script |
Generate dist output |
- Development uses
tsxfor fast TypeScript execution - Production relies entirely on compiled output in
dist/ - Each package is built and run independently within the monorepo