molly-db 1.3.2 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/module/import_handler.js +3 -0
- package/module/init_handler.js +2 -1
- package/module/memory_handler.js +2 -2
- package/module/utils.js +60 -24
- package/module/worker_handler.js +1 -0
- package/package.json +3 -5
package/module/init_handler.js
CHANGED
package/module/memory_handler.js
CHANGED
@@ -22,8 +22,8 @@ module.exports = function( data,inst,db ){
|
|
22
22
|
for( var i in input ){
|
23
23
|
const cfg = copy(data,input[i]); try {
|
24
24
|
const bool = await utils.validator(db,cfg);
|
25
|
-
if( bool )
|
26
|
-
else
|
25
|
+
if( !bool[0] ) return reject(bool[1]);
|
26
|
+
else result.push(await utils[cfg.type](cfg,db));
|
27
27
|
} catch(e) {
|
28
28
|
return reject({ status:404, message:`error: ${e.message}` })
|
29
29
|
}
|
package/module/utils.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
/*--────────────────────────────────────────────────────────────────────────────────────────────--*/
|
2
2
|
|
3
3
|
const crypto = require('./crypto_handler');
|
4
|
+
const init = require('./init_handler');
|
4
5
|
const path = require('path');
|
5
6
|
const output = new Object();
|
6
7
|
const fs = require('fs');
|
@@ -11,28 +12,27 @@ output.validator = function( db, params ){
|
|
11
12
|
return new Promise((response,reject)=>{
|
12
13
|
|
13
14
|
let validator = false; output.bodyParser( params );
|
14
|
-
const vdb = (
|
15
|
-
const vtb = (
|
15
|
+
const vdb = ()=>db._init_.DB.some(x=>x.name==params.db);
|
16
|
+
const vtb = ()=>db._init_.DB.some(x=>x.tables?.join().match(params.table));
|
16
17
|
|
17
18
|
validator = [
|
19
|
+
[ !params?.db, 'params.db = "test"' ],
|
18
20
|
[ !params?.offset, 'params.offset = 0' ],
|
19
21
|
[ !params?.target, 'params.target = ""' ],
|
20
22
|
[ !params?.length, 'params.length = 100' ],
|
23
|
+
[ !params?.table, 'params.table = "test"' ],
|
21
24
|
].every(x=>{ if(x[0]) eval(x[1]); return true; });
|
22
25
|
|
23
26
|
validator = [
|
24
27
|
[!params?.db, {status:404,message:'error: no db name added'}],
|
25
|
-
[!params?.table, {status:404,message:'error: no table name added'}]
|
26
|
-
].some(x=>{ if(x[0]) response(0
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
].some(x=>{ if(x[0]) response(0); /*reject(x[1])*/ return x[0];}); if(validator) return 0;
|
33
|
-
}
|
28
|
+
[!params?.table, {status:404,message:'error: no table name added'}],
|
29
|
+
].some(x=>{ if(x[0]) response([0,x[1]]); return x[0];}); if(validator) return 0;
|
30
|
+
|
31
|
+
validator = [
|
32
|
+
[!vdb(), output.addDB(params,db)],
|
33
|
+
[!vtb(), output.addTable(params,db)],
|
34
|
+
].some(x=>x[0]); response([1,'']);
|
34
35
|
|
35
|
-
response(1); //response();
|
36
36
|
});
|
37
37
|
}
|
38
38
|
|
@@ -69,9 +69,9 @@ const modifyDB = async function( data, db, _name, _table ){
|
|
69
69
|
try{const length = db[_name][_table].length;
|
70
70
|
if( !(length>0) ) fs.writeFileSync(dir,'');
|
71
71
|
else await encryptDB( data, db, _name, _table, dir );
|
72
|
-
} catch(e) {
|
72
|
+
} catch(e) { fs.unlinkSync( dir ); }
|
73
73
|
|
74
|
-
} catch(e) {
|
74
|
+
} catch(e) { return parseError(db,data,e) }
|
75
75
|
}
|
76
76
|
|
77
77
|
const parseData = function( db,params,_data, _length ){
|
@@ -132,6 +132,18 @@ output.unshift = function( data,db ){ db._update_ = true;
|
|
132
132
|
|
133
133
|
/*-- ── --*/
|
134
134
|
|
135
|
+
output.tableList = function( data,db ){
|
136
|
+
const result = Object.keys(db[data.db]);
|
137
|
+
return parseData( db,data,result );
|
138
|
+
}
|
139
|
+
/*
|
140
|
+
output.dbList = function( data,db ){
|
141
|
+
const result = Object.keys(db);
|
142
|
+
return parseData( db,data,result );
|
143
|
+
}
|
144
|
+
*/
|
145
|
+
/*-- ── --*/
|
146
|
+
|
135
147
|
output.list = function(data,db){
|
136
148
|
try{return parseData( db,data,
|
137
149
|
db[data.db][data.table].slice(
|
@@ -227,11 +239,14 @@ output.removeDB = function(data,db){
|
|
227
239
|
};
|
228
240
|
|
229
241
|
for( var i in db._init_.DB ){
|
230
|
-
if( db._init_.DB.name == data.db ){
|
242
|
+
if( db._init_.DB[i].name == data.db ){
|
231
243
|
db._init_.DB[i].tables.map(x=>{
|
232
|
-
|
233
|
-
|
234
|
-
|
244
|
+
const dir = path.join(data.path,`${x}.json`);
|
245
|
+
if( fs.existsSync(dir) ) fs.unlinkSync(dir);
|
246
|
+
});
|
247
|
+
const arr = db._init_.DB; arr.splice(i,1);
|
248
|
+
db._init_.DB = arr||new Array();
|
249
|
+
delete db[data.db];
|
235
250
|
break;
|
236
251
|
}
|
237
252
|
}
|
@@ -286,12 +301,15 @@ output.removeTable = function(data,db){
|
|
286
301
|
|
287
302
|
for( var i in db._init_.DB ){
|
288
303
|
if( db._init_.DB[i].name == data.db ){
|
289
|
-
const
|
290
|
-
|
291
|
-
|
304
|
+
const dir = path.join(data.path,`${data.table}.json`);
|
305
|
+
const j = db._init_.DB[i].tables.indexOf(data.table);
|
306
|
+
if( fs.existsSync(dir) ) fs.unlinkSync(dir);
|
307
|
+
const arr = db._init_.DB[i].tables; arr.splice(j,1);
|
308
|
+
db._init_.DB[i].tables = arr||new Array();
|
309
|
+
delete db[data.db][data.table];
|
292
310
|
}
|
293
311
|
}
|
294
|
-
|
312
|
+
|
295
313
|
return {
|
296
314
|
status: 200,
|
297
315
|
database: data.db,
|
@@ -306,14 +324,32 @@ output.removeTable = function(data,db){
|
|
306
324
|
|
307
325
|
output.saveAll = async function(data,db){
|
308
326
|
try { for( var i in db['_init_'] ){ for( var j in db['_init_'][i] ){
|
309
|
-
const {name,tables} = db['_init_'][i][j];
|
327
|
+
const { name, tables } = db['_init_'][i][j];
|
310
328
|
for( var k in tables ) await modifyDB(data,db,name,tables[k])
|
311
329
|
}} return {
|
312
330
|
status: 200,
|
313
331
|
database: data.db,
|
314
332
|
table: data.table,
|
315
333
|
message: 'DB Saved'
|
316
|
-
}} catch(e) {
|
334
|
+
}} catch(e) { return parseError(db,data,e) }
|
335
|
+
}
|
336
|
+
|
337
|
+
/*--────────────────────────────────────────────────────────────────────────────────────────────--*/
|
338
|
+
|
339
|
+
output.reset = async function(data,db){
|
340
|
+
const args = JSON.parse(process.env.MOLLY_DB_ARGS);
|
341
|
+
return new Promise((response,reject)=>{
|
342
|
+
init( args ).then((ndb)=>{ db = ndb;
|
343
|
+
|
344
|
+
return response({
|
345
|
+
status: 200,
|
346
|
+
database: data.db,
|
347
|
+
table: data.table,
|
348
|
+
message: 'DB Reseted'
|
349
|
+
});
|
350
|
+
|
351
|
+
}).catch((e)=>{ response(parseError(db,data,e)) });
|
352
|
+
})
|
317
353
|
}
|
318
354
|
|
319
355
|
/*--────────────────────────────────────────────────────────────────────────────────────────────--*/
|
package/module/worker_handler.js
CHANGED
@@ -26,6 +26,7 @@ function saveTimeout(data,db){
|
|
26
26
|
/*--────────────────────────────────────────────────────────────────────────────────────────────--*/
|
27
27
|
|
28
28
|
module.exports = (args)=>{
|
29
|
+
process.env.MOLLY_DB_ARGS = JSON.stringify(args);
|
29
30
|
init( args ).then((db)=>{ saveTimeout( args, db );
|
30
31
|
const dir = path.join(__dirname,'server_worker.js');
|
31
32
|
const srv = new worker.Worker(dir,{ workerData: args });
|
package/package.json
CHANGED
@@ -1,17 +1,15 @@
|
|
1
1
|
{
|
2
|
-
"scripts": {
|
3
|
-
"start": "node main"
|
4
|
-
},
|
2
|
+
"scripts": { "start": "node main" },
|
5
3
|
"repository": "https://github.com/EDBC-REPO-NPM/Molly-db",
|
6
4
|
"dependencies": {
|
7
|
-
"crypto-js": "^4.1.1",
|
8
5
|
"molly-fetch": "^1.0.16",
|
6
|
+
"crypto-js": "^4.1.1",
|
9
7
|
"ws": "^8.11.0"
|
10
8
|
},
|
11
9
|
"license": "MIT",
|
12
10
|
"main": "main.js",
|
13
11
|
"name": "molly-db",
|
14
|
-
"version": "1.3.
|
12
|
+
"version": "1.3.4",
|
15
13
|
"author": "bececrazy",
|
16
14
|
"description": "Molly-db is a free and open source library for nodejs that allow you create a lightweight encrypted database using Json files",
|
17
15
|
"keywords": [
|