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.
@@ -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": [