Skip to content

Instantly share code, notes, and snippets.

@yoshuawuyts
Created September 28, 2017 12:24
Show Gist options
  • Save yoshuawuyts/c6c9ed5daee03cb8eba6934423a1241e to your computer and use it in GitHub Desktop.
Save yoshuawuyts/c6c9ed5daee03cb8eba6934423a1241e to your computer and use it in GitHub Desktop.
var ansi = require('ansi-escape-sequences')
var eslint = require('eslint')
var path = require('path')
var os = require('os')
var HOME_OR_TMP = os.homedir() || os.tmpdir()
module.exports = ttyError
function ttyError (src, sub, err) {
var filename = err.filename
var files = [ filename ]
var engine = new eslint.CLIEngine(eslintConfig())
try {
var results = engine.executeOnFiles(files).results
} catch (e) {
return String(err) // Throwing here would only distract.
}
var str = ''
str += `Failed to compile ${src}\n\n`
var messages = results[0].messages
console.log(messages)
var len, i, message
for (i = 0, len = messages.length; i < len; i++) {
message = messages[i]
console.log(message)
}
// str += clr(clr(filename, 'bg-white'), 'black') + '\n'
// str += ` ${clr(`Line: ${loc.line}:`)}`
return str
}
function clr (text, color) {
return process.stdout.isTTY ? ansi.format(text, color) : text
}
function eslintConfig () {
return {
cache: true,
cacheLocation: path.join(HOME_OR_TMP, '.bankai/cache/'),
envs: [],
fix: false,
globals: [],
ignore: false,
plugins: [],
useEslintrc: false,
ecmaVersion: 6,
ecmaFeatures: { jsx: true }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment