molly-db 1.3.2 → 1.3.3
Sign up to get free protection for your applications and to get access to all the features.
- package/module/memory_handler.js +2 -2
- package/module/utils.js +41 -24
- package/package.json +3 -5
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(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
@@ -11,28 +11,27 @@ output.validator = function( db, params ){
|
|
11
11
|
return new Promise((response,reject)=>{
|
12
12
|
|
13
13
|
let validator = false; output.bodyParser( params );
|
14
|
-
const vdb = (
|
15
|
-
const vtb = (
|
14
|
+
const vdb = ()=>db._init_.DB.some(x=>x.name==params.db);
|
15
|
+
const vtb = ()=>db._init_.DB.some(x=>x.tables?.join().match(params.table));
|
16
16
|
|
17
17
|
validator = [
|
18
|
+
[ !params?.db, 'params.db = "test"' ],
|
18
19
|
[ !params?.offset, 'params.offset = 0' ],
|
19
20
|
[ !params?.target, 'params.target = ""' ],
|
20
21
|
[ !params?.length, 'params.length = 100' ],
|
22
|
+
[ !params?.table, 'params.table = "test"' ],
|
21
23
|
].every(x=>{ if(x[0]) eval(x[1]); return true; });
|
22
24
|
|
23
25
|
validator = [
|
24
26
|
[!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
|
-
}
|
27
|
+
[!params?.table, {status:404,message:'error: no table name added'}],
|
28
|
+
].some(x=>{ if(x[0]) response([0,x[1]]); return x[0];}); if(validator) return 0;
|
29
|
+
|
30
|
+
validator = [
|
31
|
+
[!vdb(), output.addDB(params,db)],
|
32
|
+
[!vtb(), output.addTable(params,db)],
|
33
|
+
].some(x=>x[0]); response([1,'']);
|
34
34
|
|
35
|
-
response(1); //response();
|
36
35
|
});
|
37
36
|
}
|
38
37
|
|
@@ -69,9 +68,9 @@ const modifyDB = async function( data, db, _name, _table ){
|
|
69
68
|
try{const length = db[_name][_table].length;
|
70
69
|
if( !(length>0) ) fs.writeFileSync(dir,'');
|
71
70
|
else await encryptDB( data, db, _name, _table, dir );
|
72
|
-
} catch(e) {
|
71
|
+
} catch(e) { fs.unlinkSync( dir ); }
|
73
72
|
|
74
|
-
} catch(e) {
|
73
|
+
} catch(e) { return parseError(db,data,e) }
|
75
74
|
}
|
76
75
|
|
77
76
|
const parseData = function( db,params,_data, _length ){
|
@@ -132,6 +131,18 @@ output.unshift = function( data,db ){ db._update_ = true;
|
|
132
131
|
|
133
132
|
/*-- ── --*/
|
134
133
|
|
134
|
+
output.tableList = function( data,db ){
|
135
|
+
const result = Object.keys(db[data.db]);
|
136
|
+
return parseData( db,data,result );
|
137
|
+
}
|
138
|
+
/*
|
139
|
+
output.dbList = function( data,db ){
|
140
|
+
const result = Object.keys(db);
|
141
|
+
return parseData( db,data,result );
|
142
|
+
}
|
143
|
+
*/
|
144
|
+
/*-- ── --*/
|
145
|
+
|
135
146
|
output.list = function(data,db){
|
136
147
|
try{return parseData( db,data,
|
137
148
|
db[data.db][data.table].slice(
|
@@ -227,11 +238,14 @@ output.removeDB = function(data,db){
|
|
227
238
|
};
|
228
239
|
|
229
240
|
for( var i in db._init_.DB ){
|
230
|
-
if( db._init_.DB.name == data.db ){
|
241
|
+
if( db._init_.DB[i].name == data.db ){
|
231
242
|
db._init_.DB[i].tables.map(x=>{
|
232
|
-
|
233
|
-
|
234
|
-
|
243
|
+
const dir = path.join(data.path,`${x}.json`);
|
244
|
+
if( fs.existsSync(dir) ) fs.unlinkSync(dir);
|
245
|
+
});
|
246
|
+
const arr = db._init_.DB; arr.splice(i,1);
|
247
|
+
db._init_.DB = arr||new Array();
|
248
|
+
delete db[data.db];
|
235
249
|
break;
|
236
250
|
}
|
237
251
|
}
|
@@ -286,12 +300,15 @@ output.removeTable = function(data,db){
|
|
286
300
|
|
287
301
|
for( var i in db._init_.DB ){
|
288
302
|
if( db._init_.DB[i].name == data.db ){
|
289
|
-
const
|
290
|
-
|
291
|
-
|
303
|
+
const dir = path.join(data.path,`${data.table}.json`);
|
304
|
+
const j = db._init_.DB[i].tables.indexOf(data.table);
|
305
|
+
if( fs.existsSync(dir) ) fs.unlinkSync(dir);
|
306
|
+
const arr = db._init_.DB[i].tables; arr.splice(j,1);
|
307
|
+
db._init_.DB[i].tables = arr||new Array();
|
308
|
+
delete db[data.db][data.table];
|
292
309
|
}
|
293
310
|
}
|
294
|
-
|
311
|
+
|
295
312
|
return {
|
296
313
|
status: 200,
|
297
314
|
database: data.db,
|
@@ -306,14 +323,14 @@ output.removeTable = function(data,db){
|
|
306
323
|
|
307
324
|
output.saveAll = async function(data,db){
|
308
325
|
try { for( var i in db['_init_'] ){ for( var j in db['_init_'][i] ){
|
309
|
-
const {name,tables} = db['_init_'][i][j];
|
326
|
+
const { name, tables } = db['_init_'][i][j];
|
310
327
|
for( var k in tables ) await modifyDB(data,db,name,tables[k])
|
311
328
|
}} return {
|
312
329
|
status: 200,
|
313
330
|
database: data.db,
|
314
331
|
table: data.table,
|
315
332
|
message: 'DB Saved'
|
316
|
-
}} catch(e) {
|
333
|
+
}} catch(e) { return parseError(db,data,e) }
|
317
334
|
}
|
318
335
|
|
319
336
|
/*--────────────────────────────────────────────────────────────────────────────────────────────--*/
|
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.3",
|
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": [
|