From 151dd41e6476421cc45f17be2f12aaf6c340acbf Mon Sep 17 00:00:00 2001 From: Tau Date: Mon, 14 Oct 2019 22:47:26 -0400 Subject: [PATCH] sql: Add db compaction method --- src/sql/api.ts | 2 ++ src/sql/sqlite.ts | 8 ++++++++ 2 files changed, 10 insertions(+) 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 {