@towerjs/blueprint
v0.1.1
Published
Application definition, module registration, and per-request context for Tower
Readme
@towerjs/blueprint
Application definition layer for Tower. Provides module registration, type definitions, per-request context, and the defineTower configuration function.
Installation
pnpm add @towerjs/blueprintUsage
import { defineTower } from '@towerjs/blueprint'
export default defineTower({
modules: {
vault: { provider: 'neon' },
gatehouse: { provider: 'better-auth', credentials: true },
},
})API
defineTower(config)
Defines the Tower application configuration. Type-safe at compile time; a no-op at runtime.
registerModule(name, factory) / registerModule({ name, dependsOn, factory })
Registers a module factory with Tower's lifecycle system. Modules may implement register(ctx) to publish services, initialize(ctx) to start up, and an optional shutdown(ctx) for cleanup.
towerContext
Per-request scoped storage using AsyncLocalStorage. Provides run(data, handler) and get(key) for propagating context across async boundaries.
Module interface
interface TowerModule {
name: string
dependsOn?: string[]
register?(ctx: TowerContext): void
initialize?(ctx: TowerContext): Promise<void>
shutdown?(ctx: TowerContext): Promise<void>
}Included in
- @towerjs/tower — meta-package
