molly-db 1.0.9 → 1.0.12

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/main.js CHANGED
@@ -33,9 +33,9 @@ class molly_db{
33
33
  }
34
34
  );
35
35
 
36
- this.worker.on('exit',(err)=>{ console.log(err); reject() });
37
- this.worker.on('error',(err)=>{ console.log(err); reject() });
38
- this.worker.on('message',(msg)=>{ console.log(msg); response() });
36
+ this.worker.on('exit',(err)=>{ console.log(err); reject(err) });
37
+ this.worker.on('error',(err)=>{ console.log(err); reject(err) });
38
+ this.worker.on('message',(msg)=>{ console.log(msg); response(msg) });
39
39
  });
40
40
  }
41
41
 
package/module/_init_.js CHANGED
@@ -58,12 +58,10 @@ function fillDB( _db, _table, _path ){
58
58
 
59
59
  } catch(e) {
60
60
 
61
- const path = `${query.path}/_init_.json`;
62
- db._buff_ = fs.readFileSync( path );
61
+ db._init_ = { DB:[] };
63
62
  db._path_ = query.path;
64
- db._init_ = { DB:[] }
65
-
66
- fs.writeFileSync( path,db._init_ );
63
+ const path = `${query.path}/_init_.json`;
64
+ fs.writeFileSync( path,JSON.stringify(db._init_) );
67
65
 
68
66
  } response();
69
67
  })();
@@ -2,6 +2,7 @@
2
2
  const api = url.parse( req.url,true );
3
3
  let params = api.query;
4
4
  let body = undefined;
5
+ let parse = api;
5
6
 
6
7
  /* --------------------------------------------------------------------------------------- */
7
8
 
@@ -18,21 +19,35 @@ function json( _data ){
18
19
 
19
20
  /* --------------------------------------------------------------------------------------- */
20
21
 
22
+ function bodyParser( _data ){
23
+
24
+ const date = Date.now();
25
+ const result = new Array();
26
+
27
+ if( typeof _data.length == 'number' ){
28
+ for( var i in _data ){
29
+ if(!_data[i]?.hash)
30
+ _data[i].hash = crypto.hash( date,0 );
31
+ result.push(JSON.stringify(_data[i]));
32
+ }
33
+ } else {
34
+ if(!_data?.hash)
35
+ _data.hash = crypto.hash( date,0 );
36
+ result.push(JSON.stringify(_data));
37
+ } return result;
38
+
39
+ }
40
+
21
41
  function getBody(){
22
42
  return new Promise((response,reject)=>{
23
43
  try{
24
- if( req.method == 'POST' ){
44
+ if( req.method == 'POST' || (/push|unshift|splice|update/).test(api.pathname) ){
25
45
  const data = new Array();
26
46
  req.on('data',(chunk)=>{ data.push(chunk); });
27
47
  req.on('close',()=>{ try{
28
- const buff = Buffer.concat(data).toString();
29
- const object = JSON.parse(buff);
30
- const date = Date.now();
31
-
32
- if( !object.hash )
33
- object.hash = crypto.hash( date,0 );
34
-
35
- response(JSON.stringify(object));
48
+ const buff = Buffer.concat(data);
49
+ const json = JSON.parse(buff);
50
+ response( bodyParser(json) );
36
51
  } catch(e) { response(false) } });
37
52
  } else { response(true) }
38
53
  } catch(e) { response(false) }
@@ -66,8 +81,14 @@ function validate( _params ){
66
81
 
67
82
  let validator = false;
68
83
 
69
- const vtb = (key)=>{ return db._init_.DB.some(x=>{ return x.tables.join().match(key); }) }
70
84
  const vdb = (key)=>{ return db._init_.DB.some(x=>{ return x.name == key; }) }
85
+ const vtb = (key)=>{ return db._init_.DB.some(x=>{ return x.tables.join().match(key); }) }
86
+
87
+ validator = [
88
+ [ !_params?.offset, '_params.offset = 0' ],
89
+ [ !_params?.target, '_params.target = ""' ],
90
+ [ !_params?.length, '_params.length = 100' ],
91
+ ].every(x=>{ if(x[0]) eval(x[1]); return true; });
71
92
 
72
93
  validator = [
73
94
  [!body, {status:'error',message:'invalid data'}],
@@ -75,16 +96,12 @@ function validate( _params ){
75
96
  [!_params?.table, {status:'error',message:'no table name added'}]
76
97
  ].some(x=>{ if(x[0]) reject(x[1]); return x[0];}); if(validator) return 0;
77
98
 
78
- validator = [
79
- [!vdb(_params?.db), {status:'error',message:`no db called ${_params.db} exist`}],
80
- [!vtb(_params?.table), {status:'error',message:`no table called ${_params.table} exist`}]
81
- ].some(x=>{ if(x[0]) reject(x[1]); return x[0];}); if(validator) return 0;
82
-
83
- validator = [
84
- [ !_params.offset, '_params.offset = 0' ],
85
- [ !_params.target, '_params.target = ""' ],
86
- [ !_params.length, '_params.length = 100' ],
87
- ].map(x=>{ if(x[0]) eval(x[1]) });
99
+ if( !(/table|db/gi).test(parse.pathname) ){
100
+ validator = [
101
+ [!vdb(_params?.db), {status:'error',message:`no db called ${_params.db} exist`}],
102
+ [!vtb(_params?.table), {status:'error',message:`no table called ${_params.table} exist`}]
103
+ ].some(x=>{ if(x[0]) reject(x[1]); return x[0];}); if(validator) return 0;
104
+ }
88
105
 
89
106
  response(_params);
90
107
 
@@ -136,7 +153,7 @@ function pop( _params ){
136
153
 
137
154
  async function push( _params ){
138
155
 
139
- db[_params.db][_params.table].push( body );
156
+ db[_params.db][_params.table].push( ...body );
140
157
 
141
158
  save( _params ); return [{
142
159
  database: _params.db,
@@ -149,7 +166,7 @@ async function push( _params ){
149
166
  async function splice( _params ){
150
167
 
151
168
  db[_params.db][_params.table].splice(
152
- _params.offset,_params.length,body
169
+ _params.offset,_params.length,...body
153
170
  );
154
171
 
155
172
  save( _params ); return [{
@@ -161,7 +178,7 @@ async function splice( _params ){
161
178
 
162
179
  async function unshift( _params ){
163
180
 
164
- db[_params.db][_params.table].unshift( body );
181
+ db[_params.db][_params.table].unshift( ...body );
165
182
 
166
183
  save( _params ); return [{
167
184
  database: _params.db,
@@ -180,7 +197,7 @@ async function update( _params ){
180
197
  });
181
198
 
182
199
  if( !(index<0) )
183
- db[_params.db][_params.table].splice( index,1,body );
200
+ db[_params.db][_params.table].splice( index,1,...body );
184
201
 
185
202
  save( _params ); return [{
186
203
  database: _params.db,
@@ -206,32 +223,17 @@ async function remove( _params ){
206
223
  }];
207
224
  }
208
225
 
209
- async function save( _params ){
210
-
211
- modifyDB( _params.db,_params.table );
212
- return [{
213
- database: _params.db,
214
- table: _params.table,
215
- status: 'saved'
216
- }];
217
- }
218
-
219
226
  /* --------------------------------------------------------------------------------------- */
220
227
 
221
228
  function addDB( _params ){
222
229
  try{
223
230
 
224
- const init = `${query.path}/_init_.json`;
225
-
226
231
  db._init_.DB.push({
232
+ tables: [],
227
233
  name: _params.db,
228
- tables: []
229
- });
230
-
231
- db[_params.db] = new Array();
232
- fs.writeFileSync( init,JSON.stringify(db._init_) );
234
+ }); db[_params.db] = new Array();
233
235
 
234
- return [{
236
+ save( _params ); return [{
235
237
  database: _params.db,
236
238
  status: 'DB added'
237
239
  }];
@@ -242,7 +244,6 @@ function addDB( _params ){
242
244
  function removeDB( _params ){
243
245
  try{
244
246
 
245
- const init = `${query.path}/_init_.json`;
246
247
  const i = db._init_.DB.findIndex(x=>{
247
248
  return x.name == _params.db
248
249
  });
@@ -251,11 +252,9 @@ function removeDB( _params ){
251
252
  const path = `${query.path}/${x}.json`;
252
253
  fs.unlinkSync(path);
253
254
  }); db._init_.DB.splice(i,1);
254
-
255
255
  db[_params.db] = new Array();
256
- fs.writeFileSync( init,JSON.stringify(db._init_) );
257
256
 
258
- return [{
257
+ save( _params ); return [{
259
258
  database: _params.db,
260
259
  table: _params.table,
261
260
  status: 'DB deleted'
@@ -300,7 +299,7 @@ function addTable( _params ){
300
299
 
301
300
  db[_params.db][_params.table] = new Array();
302
301
 
303
- return [{
302
+ save( _params ); return [{
304
303
  database: _params.db,
305
304
  table: _params.table,
306
305
  status: 'table added'
@@ -321,7 +320,7 @@ function removeTable( _params ){
321
320
  db._init_.DB[i].tables.splice(j,1);
322
321
  delete db[_params.db][_params.table];
323
322
 
324
- return [{
323
+ save( _params ); return [{
325
324
  database: _params.db,
326
325
  table: _params.table,
327
326
  status: 'table removed'
@@ -338,6 +337,15 @@ function refresh( _params ){
338
337
  });
339
338
  }
340
339
 
340
+ function save( _params ){
341
+ modifyDB( _params.db,_params.table );
342
+ return [{
343
+ database: _params.db,
344
+ table: _params.table,
345
+ status: 'saved'
346
+ }];
347
+ }
348
+
341
349
  /* --------------------------------------------------------------------------------------- */
342
350
 
343
351
  (async ()=>{
@@ -32,14 +32,10 @@ function app(req,res){
32
32
  (()=>{
33
33
  try{
34
34
  http.createServer( app ).listen( query.port,()=>{
35
- console.log('molly-db cluster is running, please wait');
36
35
  _init_().then(()=>{
37
36
  worker.parentPort.postMessage({
38
- protocol: 'HTTP',
39
- status: 'started',
40
- workerID: process.pid,
41
- msg: 'molly-db is running',
42
- server: `http://localhost:${query.port}`,
37
+ protocol: 'HTTP', status: 'started',
38
+ workerID: process.pid, port: query.port,
43
39
  });
44
40
  }).catch(e=>{ process.exit(1); });
45
41
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "license": "MIT",
3
3
  "main": "main.js",
4
- "version": "1.0.9",
4
+ "version": "1.0.12",
5
5
  "name": "molly-db",
6
6
  "author": "bececrazy",
7
7
  "scripts": {