packlet 0.2.0

A high-performance tool that bundles local code dependencies into a single markdown file by following import statements from an entry point
Documentation
# Packlet

A high-performance tool that bundles local code dependencies into a single markdown file by following import statements from an entry point.

## What it does

Packlet traverses your codebase starting from any JavaScript or TypeScript file, discovers all locally imported files, and bundles them into a single document. Unlike tools that bundle entire repositories, Packlet only includes files that are actually imported, making it ideal for sharing specific features or debugging dependency chains.

## Installation

```bash
cargo install packlet
```

Or build from source:

```bash
git clone https://github.com/kirillleventcov/packlet
cd packlet
cargo build --release
cargo install --path .
```

## Usage

Bundle dependencies from an entry point:

```bash
packlet bundle src/index.ts
```

This creates `index.packlet.md` containing the dependency tree and all discovered local files.

### Options

```bash
# Specify output location
packlet bundle src/app.tsx --output bundle.md

# Limit traversal depth
packlet bundle src/index.js --max-depth 3

# Filter by extensions
packlet bundle main.ts --extensions ts,tsx

# Visualize dependency tree only
packlet graph src/index.js
```

## Features

**Fast** - Parallel dependency analysis using async Rust

**Smart** - Understands ES modules, CommonJS, dynamic imports, and TypeScript paths

**Local-only** - Excludes node_modules and external packages automatically

**Framework-aware** - Handles React, Vue, Svelte, and Angular patterns

**Configurable** - Control traversal depth, file types, and output format

## Output Format

The generated markdown includes:

1. A visual dependency tree showing the import relationships
2. The complete contents of each discovered file
3. Metadata about when the bundle was created

## Example

Given this structure:

```
src/
  index.ts
  utils/helper.ts
  components/Button.tsx
```

Running `packlet bundle src/index.ts` produces a markdown file with the dependency tree and all three files' contents, properly formatted with syntax highlighting.

## Supported Languages

Currently supports JavaScript and TypeScript with full understanding of:

- ES6 imports/exports
- CommonJS require/module.exports
- Dynamic imports
- TypeScript path mappings
- JSX/TSX files

## Configuration

Create `packlet.toml` in your project root for persistent settings:

```toml
[output]
format = "markdown"

[javascript]
resolution = "typescript"
tsconfig_path = "./tsconfig.json"

[traversal]
max_depth = 50
```

## License

MIT