diff --git a/src/sql/api.ts b/src/sql/api.ts index 5515007..e0b3dfe 100644 --- a/src/sql/api.ts +++ b/src/sql/api.ts @@ -18,4 +18,6 @@ export interface Transaction { export interface DataSource { transaction(callback: (txn: Transaction) => Promise): Promise; + + vacuum(): Promise; } diff --git a/src/sql/sqlite.ts b/src/sql/sqlite.ts index 3e828bb..cb4cb71 100644 --- a/src/sql/sqlite.ts +++ b/src/sql/sqlite.ts @@ -107,6 +107,14 @@ class SqliteDataSource implements DataSource { return Promise.reject(e); } } + + vacuum(): Promise { + const db = new Database(this._path); + + db.prepare("vacuum").run(); + + return Promise.resolve(); + } } export function openSqlite(path: string): DataSource {