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.
@@ -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 ) result.push(utils[cfg.type](cfg,db));
26
- else return reject({ status:404, message:`error` })
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 = (key)=>{ return db._init_.DB.some(x=>{ return x.name == key; }) }
15
- const vtb = (key)=>{ return db._init_.DB.some(x=>{ return x.tables.join().match(key); }) }
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); /*reject(x[1])*/ return x[0];}); if(validator) return 0;
27
-
28
- if( !(/table|db|all/gi).test(params.type) ){
29
- validator = [
30
- [!vdb(params?.db), {status:404,message:`erorr: no db called ${params.db} exist`}],
31
- [!vtb(params?.table), {status:404,message:`error: no table called ${params.table} exist`}]
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) { console.log(e); fs.unlinkSync( dir ); }
71
+ } catch(e) { fs.unlinkSync( dir ); }
73
72
 
74
- } catch(e) { console.log(e); return parseError(db,data,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
- fs.unlinkSync(path.join(data.path,`${x}.json`));
233
- }); db._init_.DB.splice(i,1);
234
- delete db[data.db];
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 j = db._init_.DB[i].tables.indexOf(x=>x==data.table);
290
- delete db[data.db][data.table]; db._init_.DB[i].tables.splice(j,1);
291
- break;
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) { console.log(e); return parseError(db,data,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.2",
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": [