Skip to main content

Architecture: Tarantula CLI

Service-Oriented Design

  • All core logic is encapsulated in services (e.g., ScaffoldingService, ConfigManager, Logger).
  • Services are registered as singletons using tsyringe and injected where needed.

CLI Entrypoint

  • Bootstrapped in src/index.ts.
  • Command definitions in src/commands/ as yargs modules.

Template Generation

  • Uses Hygen and EJS for code generation.
  • Templates in _templates/model/.
  • Shared EJS includes referenced via rootfolder context variable.

Configuration

  • Managed via tara.config.ts and loaded by ConfigManager.

Error Handling

  • All user-facing errors are wrapped in custom error classes.

Extensibility

  • Add new commands or templates by following the service and template conventions.