Skip to content

Commit d169162

Browse files
committed
fix: db close with subs
1 parent fd85786 commit d169162

3 files changed

Lines changed: 16 additions & 17 deletions

File tree

.eslintcache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"/Users/charlesallen/Development/GitHub/GridSpace/net-level/lib/cli.js":"1","/Users/charlesallen/Development/GitHub/GridSpace/net-level/lib/client.js":"2","/Users/charlesallen/Development/GitHub/GridSpace/net-level/lib/clone.js":"3","/Users/charlesallen/Development/GitHub/GridSpace/net-level/lib/server.js":"4","/Users/charlesallen/Development/GitHub/GridSpace/net-level/lib/util.js":"5"},{"size":9522,"mtime":1707860428014,"results":"6","hashOfConfig":"7"},{"size":9627,"mtime":1707915522115,"results":"8","hashOfConfig":"7"},{"size":2152,"mtime":1707860428014,"results":"9","hashOfConfig":"7"},{"size":18873,"mtime":1707860428015,"results":"10","hashOfConfig":"7"},{"size":3287,"mtime":1707860428015,"results":"11","hashOfConfig":"7"},{"filePath":"12","messages":"13","suppressedMessages":"14","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"47j2ll",{"filePath":"15","messages":"16","suppressedMessages":"17","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"18","messages":"19","suppressedMessages":"20","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"21","messages":"22","suppressedMessages":"23","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"24","messages":"25","suppressedMessages":"26","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/charlesallen/Development/GitHub/GridSpace/net-level/lib/cli.js",[],[],"/Users/charlesallen/Development/GitHub/GridSpace/net-level/lib/client.js",[],[],"/Users/charlesallen/Development/GitHub/GridSpace/net-level/lib/clone.js",[],[],"/Users/charlesallen/Development/GitHub/GridSpace/net-level/lib/server.js",[],[],"/Users/charlesallen/Development/GitHub/GridSpace/net-level/lib/util.js",[],[]]
1+
[{"/Users/stewart/Code/net-level/lib/server.js":"1"},{"size":25497,"mtime":1755398221157,"results":"2","hashOfConfig":"3"},{"filePath":"4","messages":"5","suppressedMessages":"6","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1tgfjf5","/Users/stewart/Code/net-level/lib/server.js",[],[]]

client/script-pre.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
mkdir lib
1+
mkdir -p lib
22
cp ../lib/*js lib/

lib/server.js

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ function validName(n) {
4040
}
4141

4242
async function pause(ms) {
43-
return new Promise(resolve => setTimeout(resolve, ms));
43+
return new Promise((resolve) => setTimeout(resolve, ms));
4444
}
4545

4646
class LevelServer {
@@ -65,7 +65,7 @@ class LevelServer {
6565
dels: 0,
6666
iter: 0
6767
};
68-
#webdir = "web";
68+
#webdir = 'web';
6969
#webport = 4040;
7070
#webhost = '127.0.0.1';
7171

@@ -202,7 +202,7 @@ class LevelServer {
202202
check_perms,
203203
check_db,
204204
check_db_open,
205-
close,
205+
close
206206
});
207207

208208
function close(drec) {
@@ -215,6 +215,7 @@ class LevelServer {
215215
// close base when last user of it disconnects
216216
if (uids.length === 0) {
217217
if (state.db) {
218+
state.db = state.path[0];
218219
state.db.close();
219220
}
220221
state.path = [];
@@ -291,7 +292,7 @@ class LevelServer {
291292
dels: server.#stats.dels,
292293
iter: server.#stats.iter,
293294
dbug: server.#dbug,
294-
path: state.path.map(db => db.name),
295+
path: state.path.map((db) => db.name),
295296
user: state.unam
296297
};
297298
if (opt.list) {
@@ -379,7 +380,7 @@ class LevelServer {
379380
return send({ user, list: Object.keys(users) });
380381
}
381382
default:
382-
return send({ user, error: "invalid user command" });
383+
return send({ user, error: 'invalid user command' });
383384
}
384385
send({ user });
385386
this.#users_save();
@@ -418,7 +419,7 @@ class LevelServer {
418419
send({ auth });
419420
}
420421

421-
#cmd_use(conn, send, use, opt = { }) {
422+
#cmd_use(conn, send, use, opt = {}) {
422423
const { state, server } = conn;
423424
const { addr, perms, urec, unam, uuid } = state;
424425
if (!(perms.use || (urec && urec.base && urec.base[use] && urec.base[use].use))) {
@@ -464,14 +465,14 @@ class LevelServer {
464465
console.log({ db_error: error });
465466
state.close(server.#base[use]);
466467
});
467-
state.dinf = server.#bases[use] = (dinf || {
468+
state.dinf = server.#bases[use] = dinf || {
468469
gets: 0,
469470
puts: 0,
470471
dels: 0,
471472
iter: 0,
472473
created: Date.now(),
473474
creator: state.unam
474-
});
475+
};
475476
state.drec = server.#base[use] = { uids: [uuid], db };
476477
state.path.length = 0;
477478
state.path.push(db);
@@ -485,7 +486,7 @@ class LevelServer {
485486
state.dbperms = urec && urec.base ? urec.base[use] || {} : {};
486487
}
487488

488-
#cmd_sub(conn, send, sub, opt = { }) {
489+
#cmd_sub(conn, send, sub, opt = {}) {
489490
const { state } = conn;
490491
const { path } = state;
491492
let { db } = state;
@@ -611,7 +612,7 @@ class LevelServer {
611612
if (pre && !key.startsWith(pre)) {
612613
break;
613614
}
614-
if (opt.skip && (read % opt.skip) !== 0) {
615+
if (opt.skip && read % opt.skip !== 0) {
615616
read++;
616617
continue;
617618
}
@@ -776,14 +777,12 @@ if (module.parent) {
776777
new LevelServer({
777778
host: args.host || process.env.DB_HOST || 'localhost',
778779
port: args.port || parseInt(process.env.DB_PORT || 3000),
779-
webhost: args.webhost || 'localhost',
780-
webport: args.webport || 4040,
780+
webhost: args.webhost || process.env.WEB_HOST || 'localhost',
781+
webport: args.webport || parseInt(process.env.WEB_PORT || 4040),
781782
webdir: args.webdir || 'web',
782783
dir: args.dir || args.base || process.env.DB_BASE || 'data',
783784
user: args.user || process.env.DB_USER || undefined,
784785
pass: args.pass || process.env.DB_PASS || undefined,
785-
pash: args.pash || process.env.DB_PASH || undefined,
786-
webhost: args.webhost || process.env.WEB_HOST,
787-
webport: args.webport || parseInt(process.env.WEB_PORT || 4040)
786+
pash: args.pash || process.env.DB_PASH || undefined
788787
});
789788
}

0 commit comments

Comments
 (0)