molly-db 1.0.14 → 1.0.17
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 +4 -23
- package/module/_init_.js +4 -2
- package/module/_server_.js +3 -3
- package/module/_worker_.js +23 -14
- package/package.json +1 -1
package/main.js
CHANGED
@@ -15,31 +15,12 @@ function config( _config ) {
|
|
15
15
|
|
16
16
|
/* --------------------------------------------------------------------------------------- */
|
17
17
|
|
18
|
-
function startWorker(_path,_self){
|
19
|
-
return new Promise((response,reject)=>{
|
20
|
-
const wrk = new worker.Worker(
|
21
|
-
_path,{ workerData:_self,
|
22
|
-
env: worker.SHARE_ENV,
|
23
|
-
}); wrk.on('message',(msg)=>{
|
24
|
-
console.log(msg)
|
25
|
-
response(msg)
|
26
|
-
}); wrk.on('exit',(err)=>{ console.log(err);
|
27
|
-
response(startWorker(_path,_self));
|
28
|
-
});
|
29
|
-
});
|
30
|
-
}
|
31
|
-
|
32
|
-
/* --------------------------------------------------------------------------------------- */
|
33
|
-
|
34
18
|
class molly_db{
|
35
19
|
|
36
|
-
constructor( opt ){
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
this.path = opt.path.replace(/^\./,process.cwd());
|
41
|
-
this.workerPath = `${__dirname}/module/_worker_.js`;
|
42
|
-
return startWorker( this.workerPath,this );
|
20
|
+
constructor( opt ){ if( opt.pass )
|
21
|
+
this.pass = opt.pass; this.port = opt.port || 27017;
|
22
|
+
this.path = opt.path.replace( /^\./,process.cwd() );
|
23
|
+
return require(`${__dirname}/module/_worker_.js`)(this);
|
43
24
|
}
|
44
25
|
|
45
26
|
}
|
package/module/_init_.js
CHANGED
@@ -27,7 +27,7 @@ function fillDB( _db, _table, _path ){
|
|
27
27
|
|
28
28
|
/* --------------------------------------------------------------------------------------- */
|
29
29
|
|
30
|
-
(async()=>{
|
30
|
+
(()=>{ return new Promise(async(response,reject)=>{
|
31
31
|
try {
|
32
32
|
|
33
33
|
const path = `${query.path}/_init_.json`;
|
@@ -65,4 +65,6 @@ function fillDB( _db, _table, _path ){
|
|
65
65
|
fs.writeFileSync( path,JSON.stringify(db._init_) );
|
66
66
|
|
67
67
|
} response();
|
68
|
-
|
68
|
+
|
69
|
+
|
70
|
+
}); })();
|
package/module/_server_.js
CHANGED
@@ -22,12 +22,12 @@ function json( _data ){
|
|
22
22
|
function bodyParser( _data ){
|
23
23
|
|
24
24
|
const date = Date.now(); _data = JSON.parse(_data);
|
25
|
-
const result =
|
25
|
+
const result = _data.length ? _data : [_data];
|
26
26
|
|
27
27
|
return result.map(x=>{ if( !x?.hash )
|
28
28
|
x.hash = crypto.hash( date,Math.random() );
|
29
29
|
return JSON.stringify(x);
|
30
|
-
})
|
30
|
+
});
|
31
31
|
|
32
32
|
}
|
33
33
|
|
@@ -379,4 +379,4 @@ async function save( _params ){
|
|
379
379
|
} catch(e) { error(e?.message||e); }
|
380
380
|
})();
|
381
381
|
|
382
|
-
/* --------------------------------------------------------------------------------------- */
|
382
|
+
/* --------------------------------------------------------------------------------------- */
|
package/module/_worker_.js
CHANGED
@@ -2,20 +2,22 @@ const worker = require('worker_threads');
|
|
2
2
|
const readline = require('readline');
|
3
3
|
const crypto = require('./_crypto_');
|
4
4
|
const { Buffer } = require('buffer');
|
5
|
+
const cluster = require('cluster');
|
5
6
|
const fetch = require('axios');
|
6
7
|
const http = require('http');
|
7
8
|
const url = require('url');
|
8
9
|
const fs = require('fs');
|
9
10
|
|
10
|
-
|
11
|
+
/* --------------------------------------------------------------------------------------- */
|
12
|
+
|
13
|
+
let query;
|
11
14
|
const db = new Object();
|
15
|
+
|
12
16
|
/* --------------------------------------------------------------------------------------- */
|
13
17
|
|
14
18
|
function _init_(){
|
15
|
-
return
|
16
|
-
|
17
|
-
} catch(e){ console.log(e); }
|
18
|
-
});
|
19
|
+
try{ return eval( fs.readFileSync(`${__dirname}/_init_.js`).toString() );
|
20
|
+
} catch(e){ console.log(e); }
|
19
21
|
}
|
20
22
|
|
21
23
|
/* --------------------------------------------------------------------------------------- */
|
@@ -27,15 +29,22 @@ function app(req,res){
|
|
27
29
|
|
28
30
|
/* --------------------------------------------------------------------------------------- */
|
29
31
|
|
30
|
-
(
|
31
|
-
|
32
|
-
|
33
|
-
worker.
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
}
|
32
|
+
module.exports = (args)=>{ query = args;
|
33
|
+
return new Promise((response,reject)=>{
|
34
|
+
if (cluster.isPrimary) { const worker = cluster.fork();
|
35
|
+
cluster.on('exit', (worker, code, signal) => { cluster.fork();
|
36
|
+
console.log(`worker ${worker.process.pid} died`);
|
37
|
+
}); worker.on('message', (msg)=>{ console.log(msg); response(); });
|
38
|
+
worker.on('exit', (msg)=>{ reject(msg); });
|
39
|
+
} else {
|
40
|
+
http.createServer( app ).listen( query.port,()=>{
|
41
|
+
_init_().then(()=>{ process.send({
|
42
|
+
workerID: process.pid, port: query.port,
|
43
|
+
protocol: 'HTTP', status: 'started',
|
44
|
+
})}).catch(e=>{ console.log(e); });
|
45
|
+
});
|
46
|
+
}
|
38
47
|
});
|
39
|
-
}
|
48
|
+
}
|
40
49
|
|
41
50
|
/* --------------------------------------------------------------------------------------- */
|