Documentation
Browse the project documentation to learn about APIs, features, and implementation details.
Thessia Build System
This project uses a consolidated build system in build.ts
that handles all build-related tasks.
Features
- Loader Generation: Auto-generates TypeScript loader files for console commands, cron jobs, and queue jobs
- Binary Building: Creates optimized standalone binaries using esbuild
- Asset Processing: Downloads and modifies Cloudflare beacon script
- Documentation: Copies docs to build output for API access
- Nuxt Integration: Integrated with Nuxt.js build hooks for seamless development
Commands
Development
# Generate all loader files (CLI, Cron, Queue)
bun run build:loaders
# Build individual binaries
bun run build:cli
bun run build:cron
bun run build:queue
# Build everything
bun run build
Direct Usage
# Generate loaders only
bun run build.ts loaders
# Build specific binary
bun run build.ts cli
bun run build.ts cron
bun run build.ts queue
# Build all binaries
bun run build.ts all
Output Structure
.output/
├── cli/
│ ├── console.js # CLI binary
│ └── package.json # Runtime dependencies
├── cron/
│ ├── cron.js # Cron binary
│ └── package.json # Runtime dependencies
├── queue/
│ ├── queue.js # Queue binary
│ └── package.json # Runtime dependencies
└── public/
└── _ca/
└── cloudflare-beacon.js # Modified Cloudflare script
Loader Files
The build system automatically generates loader files that import all modules:
console/.loader.ts
- Exports all CLI commandscron/.loader.ts
- Exports all cron jobsqueue/.loader.ts
- Exports all queue jobs
These are generated automatically before builds and during development.
Configuration
Build configuration is centralized in the BuildConfig
interface in build.ts
:
- External modules: Node.js built-ins that should not be bundled
- Package dependencies: Runtime dependencies for binaries
- Project paths: Root directory and output locations
Integration
The build system integrates with Nuxt.js through hooks:
build:before
- Generates loaders before buildapp:resolve
- Generates loaders on dev server startnitro:build:public-assets
- Processes Cloudflare beacon and copies docs