Commit ebcccab4 authored by aniket-engg's avatar aniket-engg Committed by Aniket

error and response defined

parent 07130ef0
import * as WS from 'ws' // eslint-disable-line
import { PluginClient } from '@remixproject/plugin'
import { existsSync, readFileSync } from 'fs'
const { spawn, execSync } = require('child_process')
export class SlitherClient extends PluginClient {
......@@ -20,6 +21,17 @@ export class SlitherClient extends PluginClient {
this.currentSharedFolder = currentSharedFolder
}
transform (detectors) {
// detectors
// I/O standard mapping
// Analysis Description -> description
// Analysis Short title -> check
// Confidence -> confidence
// Severity -> impact
// Source Map -> elements[i].source_mapping (remove filename_used, filename_absolute)
}
analyse (filePath: string, compilerConfig) {
return new Promise((resolve, reject) => {
if (this.readOnly) {
......@@ -48,6 +60,7 @@ export class SlitherClient extends PluginClient {
const child = spawn(cmd, options)
let result = ''
let error = ''
let response = {}
child.stdout.on('data', (data) => {
const msg = `[Slither Analysis]: ${data.toString()}`
console.log('\x1b[32m%s\x1b[0m', msg)
......@@ -57,8 +70,28 @@ export class SlitherClient extends PluginClient {
error += `[Slither Analysis]: ${err.toString()}`
})
child.on('close', () => {
if (error) reject(error)
else resolve(result)
const outputFileAbsPath = `${this.currentSharedFolder}/${outputFile}`
if (existsSync (outputFileAbsPath)) {
const report = readFileSync(outputFileAbsPath, 'utf8')
console.log('report--->', report)
if (report['success']) {
response['status'] = true
if (!report['results'] || !report['results'].detectors || !report['results'].detectors.length) {
response['count'] = 0
} else {
const { detectors } = report['results']
response['count'] = detectors.length
response['data'] = this.transform(detectors)
}
resolve(response)
} else {
console.log('[Slither Analysis]: Error in running Slither Analysis')
console.log(report['error'])
reject(new Error('Error in running Slither Analysis. See remixd console.'))
}
} else reject(new Error('Error in generating Slither Analysis Report. See remixd console.'))
// if (error) reject(error)
// else resolve(result)
})
})
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment