Skip to content

[Fase 1] Creare SQLite client singleton con init asincrona #5

Description

@elecicalla

Context

Serve un modulo singleton che inizializzi sql.js, crei o ripristini il database, e lo esponga come entry point unico per tutte le query.

Objective

Creare src/db/sqlite-client.ts con:

  • Init asincrona di sql.js (caricamento WASM)
  • Restore del DB da localStorage se presente
  • Creazione DB vuoto altrimenti
  • Metodi helper: run(), exec(), getAll(), getOne()
  • Persistenza automatica su localStorage dopo ogni scrittura

Acceptance Criteria

  • Modulo src/db/sqlite-client.ts esiste e compila senza errori
  • initDatabase() carica il WASM e restituisce l'istanza DB
  • Se localStorage contiene un dump, il DB viene ripristinato
  • Se localStorage e' vuoto, viene creato un DB in-memory
  • Dopo ogni operazione di scrittura il DB viene salvato in localStorage (Base64)
  • Fallback graceful se localStorage non disponibile (warning in console, DB solo in-memory)
  • Prepared statements usati per prevenire SQL injection

Dependencies

Depends on: #4

Notes

Phase: Fase 1
Ref: FR-001, FR-005, NFR-001, NFR-003, NFR-004

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions