Persist reports in memory
This commit is contained in:
parent
0fb42d9f75
commit
e53679087b
@ -4,7 +4,7 @@ var path = require('path');
|
|||||||
var argv = require('minimist')(process.argv.slice(2));
|
var argv = require('minimist')(process.argv.slice(2));
|
||||||
var chalk = require('chalk');
|
var chalk = require('chalk');
|
||||||
var injectServer = require('./injectServer');
|
var injectServer = require('./injectServer');
|
||||||
var getOptions = require('./../lib/getOptions');
|
var getOptions = require('./../lib/options');
|
||||||
|
|
||||||
function readFile(filePath) {
|
function readFile(filePath) {
|
||||||
return fs.readFileSync(path.resolve(process.cwd(), filePath), 'utf-8');
|
return fs.readFileSync(path.resolve(process.cwd(), filePath), 'utf-8');
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
var assign = require('object-assign');
|
var assign = require('object-assign');
|
||||||
var repeat = require('repeat-string');
|
var repeat = require('repeat-string');
|
||||||
var getOptions = require('./../lib/getOptions');
|
var getOptions = require('./../lib/options');
|
||||||
var getPort = require('getport');
|
var getPort = require('getport');
|
||||||
|
|
||||||
var LOG_LEVEL_NONE = 0;
|
var LOG_LEVEL_NONE = 0;
|
||||||
|
@ -8,6 +8,8 @@ module.exports = function getOptions(argv) {
|
|||||||
cert: argv.cert || process.env.npm_package_remotedev_cert || null,
|
cert: argv.cert || process.env.npm_package_remotedev_cert || null,
|
||||||
passphrase: argv.passphrase || process.env.npm_package_remotedev_passphrase || null
|
passphrase: argv.passphrase || process.env.npm_package_remotedev_passphrase || null
|
||||||
},
|
},
|
||||||
|
adapter: argv.adapter || process.env.npm_package_remotedev_adapter,
|
||||||
|
db: argv.adapter || process.env.npm_package_remotedev_db,
|
||||||
logLevel: argv.logLevel || 3
|
logLevel: argv.logLevel || 3
|
||||||
};
|
};
|
||||||
}
|
}
|
32
lib/store.js
Normal file
32
lib/store.js
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
var uuid = require('node-uuid');
|
||||||
|
var JSData = require('js-data');
|
||||||
|
|
||||||
|
var store;
|
||||||
|
var adapter;
|
||||||
|
var Report;
|
||||||
|
|
||||||
|
function add(data) {
|
||||||
|
var obj = {
|
||||||
|
id: uuid.v4(),
|
||||||
|
type: data.type,
|
||||||
|
payload: data.payload
|
||||||
|
};
|
||||||
|
if (!adapter) {
|
||||||
|
return new Promise(function(resolve) {
|
||||||
|
var report = Report.inject(obj);
|
||||||
|
return resolve(report);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return Report.create(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createStore(options) {
|
||||||
|
store = new JSData.DS();
|
||||||
|
Report = store.defineResource('report');
|
||||||
|
|
||||||
|
return {
|
||||||
|
add: add
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = createStore;
|
@ -2,10 +2,12 @@ var path = require('path');
|
|||||||
var app = require('express')();
|
var app = require('express')();
|
||||||
var bodyParser = require('body-parser');
|
var bodyParser = require('body-parser');
|
||||||
var cors = require('cors');
|
var cors = require('cors');
|
||||||
|
var createStore = require('./store');
|
||||||
|
|
||||||
module.exports.run = function(worker) {
|
module.exports.run = function(worker) {
|
||||||
var httpServer = worker.httpServer;
|
var httpServer = worker.httpServer;
|
||||||
var scServer = worker.scServer;
|
var scServer = worker.scServer;
|
||||||
|
var store;
|
||||||
|
|
||||||
httpServer.on('request', app);
|
httpServer.on('request', app);
|
||||||
|
|
||||||
@ -20,8 +22,11 @@ module.exports.run = function(worker) {
|
|||||||
app.use(bodyParser.json());
|
app.use(bodyParser.json());
|
||||||
app.post('/', function(req, res) {
|
app.post('/', function(req, res) {
|
||||||
if (!req.body) return res.status(404).end();
|
if (!req.body) return res.status(404).end();
|
||||||
|
if (!store) store = createStore(worker.options);
|
||||||
|
store.add(req.body).then(function(r) {
|
||||||
scServer.exchange.publish('log', req.body);
|
scServer.exchange.publish('log', req.body);
|
||||||
res.send('OK');
|
res.send({ id: r.id });
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
scServer.addMiddleware(scServer.MIDDLEWARE_EMIT, function (req, next) {
|
scServer.addMiddleware(scServer.MIDDLEWARE_EMIT, function (req, next) {
|
||||||
|
@ -32,7 +32,9 @@
|
|||||||
"ejs": "^2.4.1",
|
"ejs": "^2.4.1",
|
||||||
"express": "^4.13.3",
|
"express": "^4.13.3",
|
||||||
"getport": "^0.1.0",
|
"getport": "^0.1.0",
|
||||||
|
"js-data": "^2.9.0",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
|
"node-uuid": "^1.4.0",
|
||||||
"object-assign": "^4.0.0",
|
"object-assign": "^4.0.0",
|
||||||
"repeat-string": "^1.5.4",
|
"repeat-string": "^1.5.4",
|
||||||
"semver": "^5.3.0",
|
"semver": "^5.3.0",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user