Support sqlite mode flags (#73)

* Update mbtiles.js

* some reading

* remove seemingly unused/dead code

* core api functionality

* test note

* grids

* remove index test

* add tilelive example

* vNext

* follow sqlite3 URI filenames

* add mode test

* add mode test

* fix ci

* fix ci

* Update mbtiles.js

* follow sqlite3 URI filenames

* add mode test

* add mode test

* fix ci

* fix ci

* Update readme on mode flags
This commit is contained in:
jingsam
2018-03-27 23:23:48 +08:00
committed by Sam Matthews
parent 6febf74d62
commit 9e9a1ebbb9
3 changed files with 51 additions and 2 deletions

View File

@@ -51,11 +51,22 @@ function MBTiles(uri, callback) {
uri.query = uri.query || {};
if (!uri.query.batch) uri.query.batch = 100;
if (!uri.query.mode) uri.query.mode = 'rwc';
var flagEnum = {
ro: sqlite3.OPEN_READONLY,
rw: sqlite3.OPEN_READWRITE,
rwc: sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE
};
var mode = flagEnum[uri.query.mode];
if (!mode) {
return callback(new Error('Only supports "ro", "rw", or "rwc" mode.'));
}
var mbtiles = this;
this.setMaxListeners(0);
this.filename = uri.pathname;
this._batchSize = +uri.query.batch;
mbtiles._db = new sqlite3.Database(mbtiles.filename, function(err) {
mbtiles._db = new sqlite3.Database(mbtiles.filename, mode, function(err) {
if (err) return callback(err);
fs.stat(mbtiles.filename, function(err, stat) {
if (err) return callback(err);