Aceito
O daemon precisa de três capacidades nativas com frequência: spawnar e
supervisionar child processes (streamlink por gravação), falar SQLite sem
dependência binária externa, e rodar TypeScript no dia a dia sem um passo de
transpilação separado no loop de dev. O projeto é greenfield, sem código
legado em Node a migrar, o que abre a escolha de runtime sem custo de
migração.
ts-node/tsx bem estabelecidos,
better-sqlite3 e execa cobrem as mesmas necessidades.ts-node ou build step, jest/vitest
como test runner, dotenv, uma lib de child process mais ergonômica que
child_process cru) — mais superfície de configuração pra manter.Bun.spawn cobre supervisão de child process nativamente,
bun:sqlite é SQLite nativo sem dependência de build binário, roda .ts
direto sem transpiler separado, bun test já é auto-discovery de
*.spec.ts sem config extra, .env carregado automaticamente.Bun 1.3 como runtime único do monorepo (daemon, CLI e scripts).
ts-node, esbuild, jest ou dotenv como
dependências separadas — o runtime absorve essas funções.bun:sqlite e Bun.spawn tornam a infraestrutura (infrastructure/database,
infrastructure/recorder) mais fina, sem camada de abstração extra sobre o
SO.engines.node continua declarado no package.json só como sinalização de
compatibilidade mínima de sintaxe, não como runtime suportado de fato.