Skip to content

Commit 47f0f06

Browse files
committed
wip: Delete LevelDB database
1 parent 156aedd commit 47f0f06

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"react-split-pane": "^0.1.77",
3131
"react-timeago": "^3.4.3",
3232
"remark": "^9.0.0",
33+
"rimraf": "^2.6.2",
3334
"router": "^1.3.2",
3435
"socket.io": "1.3.7",
3536
"socket.io-client": "1.3.7",
@@ -78,7 +79,6 @@
7879
"postcss": "^6.0.19",
7980
"postcss-loader": "^2.1.1",
8081
"react-test-renderer": "^16.2.0",
81-
"rimraf": "^2.6.2",
8282
"sanitize-filename": "^1.6.1",
8383
"sinon": "^4.4.2",
8484
"source-map-explorer": "^1.5.0",

src/server/LevelDBLib.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { join, sep } from 'path';
22
import { lstatSync, readdirSync } from 'fs';
3+
import rimraf from 'rimraf';
34

45
const unsafeChars = /[^-_a-zA-Z0-9]/g;
56
const windowsReserved = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;
@@ -77,4 +78,22 @@ export default class LevelDBLib {
7778
}
7879
return y.db.whenTransactionsFinished();
7980
}
81+
/**
82+
* Deletes database. The database must be closed before deleting.
83+
* @param {string} path parent directory of each levelDB database
84+
* @param {string} page raw page name of wiki page
85+
* @returns {Promise}
86+
*/
87+
static deleteDatabase(path, page) {
88+
const dbpath = join(path, LevelDBLib.escapeNamespace(page));
89+
return new Promise((resolve, reject) => {
90+
rimraf(dbpath, {}, (err) => {
91+
if (err) {
92+
reject(err);
93+
return;
94+
}
95+
resolve();
96+
});
97+
});
98+
}
8099
}

0 commit comments

Comments
 (0)