Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions lib/critic.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,12 @@ function organize(result) {
functions: report.functions,
errors: report.errors
},
security: result.security[report.file],
jshint: result.jshint[report.file] || []
security: (result.security || {})[report.file],
jshint: (result.jshint || {})[report.file] || []
};
});
output.forEach(function (report) {
report.duplicates = result.duplicates.issues.filter(function (issue) {
report.duplicates = (result.duplicates || { issues: [] }).issues.filter(function (issue) {
return applicableIssues(issue, report.file);
});
report.rating = score.evaluate(report);
Expand Down
5 changes: 3 additions & 2 deletions lib/db.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
'use strict';

var levelup = require('levelup'),
leveldown = require('leveldown'),
dbName = process.env.NODE_ENV === 'test' ? ('./db/codecritic_test' + new Date().getTime()) : './db/codecritic';

// 1) Create our database, supply location and options.
// This will create or open the underlying LevelDB store.
var db = levelup(dbName, {
var db = levelup(leveldown(dbName, {
valueEncoding: 'json'
});
}));

module.exports = {
db: db
Expand Down
7 changes: 6 additions & 1 deletion lib/js/complexity.js
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,12 @@ function run(paths, callback) {
exec(command + paths.join(' '), {
maxBuffer: 1024 * 1024 * 5000
}, function (error, stdout) {
var reports = parseStdOut(JSON.parse(stdout).reports);
var reports = [];
if (!error) {
reports = parseStdOut(JSON.parse(stdout).reports);
} else {
logger.error(error, stdout);
}
logger.info('[complexity] analysis completed', error);
callback(error, reports);
});
Expand Down
10 changes: 8 additions & 2 deletions lib/js/security.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,14 @@ function run(paths, project, callback) {
var command = 'node ' + __dirname + '/../../node_modules/scanjs/scanner.js -o ' + project + '/scanreport -t ';
exec(command + paths.join(' '), function (error) {
logger.info('[security] analysis completed', error);
var report = JSON.parse(fs.readFileSync(project + '/scanreport.JSON').toString());
callback(error, report);
fs.access(project + '/scanreport.JSON', fs.F_OK, function(err) {
if (!err) {
var report = JSON.parse(fs.readFileSync(project + '/scanreport.JSON').toString());
callback(error, report);
} else {
callback(error || err);
}
});
});
});
}
Expand Down
4 changes: 2 additions & 2 deletions lib/models/projects.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ function logError(err) {
* @param callback {function}
*/
function listProjects(user, callback) {
db.get('projects', function (err, projects) {
db.get('projects', function (err, projectsBuffer) {
logError(err);
projects = (projects || []).filter(function (project) {
var projects = [...projectsBuffer].filter(function (project) {
return project.user === user;
});
callback(err, projects);
Expand Down
6 changes: 3 additions & 3 deletions lib/score.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ function getRating(numberOfIssues) {
function evaluate(report) {
var numberOfIssues = [
report.complexity.errors.length,
report.security.length,
report.jshint.length,
report.duplicates.length
(report.security || []).length,
(report.jshint || []).length,
(report.duplicates || []).length
].reduce(function (total, current) {
return total + current;
}, 0);
Expand Down
Loading