molly-db 1.3.2 → 1.3.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ module.exports = function(){
2
+ //FIXME: falta crear el importador DB
3
+ }
@@ -1,4 +1,5 @@
1
- const crypto = require('./crypto_handler')
1
+ const download = require('./import_handler');
2
+ const crypto = require('./crypto_handler');
2
3
  const fetch = require('molly-fetch');
3
4
  const readline = require('readline');
4
5
  const path = require('path');
@@ -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(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 = (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); }) }
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); /*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
- }
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) { console.log(e); fs.unlinkSync( dir ); }
72
+ } catch(e) { fs.unlinkSync( dir ); }
73
73
 
74
- } catch(e) { console.log(e); return parseError(db,data,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
- fs.unlinkSync(path.join(data.path,`${x}.json`));
233
- }); db._init_.DB.splice(i,1);
234
- delete db[data.db];
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 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;
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) { console.log(e); return parseError(db,data,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
  /*--────────────────────────────────────────────────────────────────────────────────────────────--*/
@@ -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.2",
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": [