xPulse
🇩🇪 DE

@xpulse/app – API

app.init(env?)

Bootstrapped den gesamten Stack über den resilienten Service Loader.

import app from '@xpulse/app';
await app.init(); // env aus APP_ENV → NODE_ENV
await app.init('stage'); // explizit

Bootstrap-Reihenfolge

  1. App Root setzen
  2. config.load() – xpulse.json + .env
  3. debug.init() – wenn installiert + debug.enabled: true
  4. logger.init()
  5. http.init()
  6. controller.init() – discovert + registriert Routes
  7. CLI Discovery

Jeder Schritt ist resilient – fehlt ein Package, wird es übersprungen.

app.start()

Startet den HTTP-Server. Feuert app:ready.

app.stop(exitCode?)

Graceful Shutdown. Feuert app:stoppingapp:stoppedprocess.exit().

Helpers

app.root() // absoluter App Root Pfad
app.path('src/x') // Pfad relativ zu App Root
app.env // 'development' | 'stage' | 'production' | null
app.isDev()
app.isProd()
app.isStage()

Events

Event Payload Wann
app:init { env, root } Bootstrap beginnt
app:ready { env, root, uptime } Stack bereit
app:stopping { signal } Shutdown eingeleitet
app:stopped { uptime, exitCode } Shutdown abgeschlossen
app:service:skipped { service, reason } Service nicht installiert
app:service:error { service, error } Service Init fehlgeschlagen

Vollständige Event-Referenz: GLOBAL_adr-010-event-driven.md

de/api.md 2026-03-20