| name | generate-barrels |
| description | Generate barrel index.ts files for TypeScript projects. Use when user mentions: (1) barrel files, (2) index.ts exports, (3) re-export files, (4) simplify import paths, (5) create index files for directory, or (6) generate export aggregators. |
Generate Barrel Files
Generate barrel index.ts files for TypeScript directories to simplify imports.
Note: Generation commands (model gen, aptx functions, react-query, vue-query) automatically update barrel files after generation. Use this command only for manual fixes or special cases.
When to Use This Command
| Scenario | Action |
|---|
| Normal generation | Barrel files are auto-updated - no action needed |
| Fixing corrupted barrel files | Use this command |
| Processing non-standard directory structures | Use this command |
| One-time batch updates across multiple directories | Use this command |
Prerequisites
pnpm add -D @aptx/frontend-tk-cli
Usage
pnpm exec aptx-ft barrel gen -i <input-dir>
Alternative (without pnpm):
npx aptx-ft barrel gen -i ./src/functions
Workflow
- Ask user for target directory path
- Show complete command and confirm with user
- Execute and report results
Common Directories
| Directory | Purpose |
|---|
./src/functions | Function modules |
./src/api | API modules |
./src | Entire source directory |
Examples
pnpm exec aptx-ft barrel gen -i ./src/functions
pnpm exec aptx-ft barrel gen -i ./src
pnpm exec aptx-ft barrel gen -i ./src/api
Output
Recursively scans directory and generates barrel files at all levels:
src/
├── index.ts # Exports functions, react-query, spec
├── functions/
│ ├── index.ts # Exports application, assignment, ...
│ └── application/
│ └── index.ts # Exports getXXX, setXXX, ...
├── react-query/
│ ├── index.ts # Exports application, assignment, ...
│ └── application/
│ └── index.ts # Exports *.query.ts, *.mutation.ts
└── spec/
└── ...
Boundaries
- Only generates index.ts barrel files, no other code
- Subdirectory index.ts files are overwritten
- Root index.ts is NOT overwritten if it exists with different content (protects manual entry files)
- Automatically skips
node_modules and hidden directories (starting with .)
- Only processes
.ts files, not .tsx, .js, etc.