babel-node-debug
Version:
node-debug but with babel-node
66 lines (61 loc) • 2.05 kB
JavaScript
// var path = require('path')
var util = require('util')
var Debugger = require('yadc').Debugger
// var nodeDebugDir = path.dirname(require.resolve('node-inspector/bin/node-debug'))
// process.argv.splice(2, 0, '--nodejs', babelNodePath)
var OriginalDebugServer = require('node-inspector/lib/debug-server').DebugServer
function DebugServer() {
var debugServer = this
OriginalDebugServer.apply(this, arguments)
var oldStart = debugServer.start
debugServer.start = function start(config) {
var returnValue = oldStart.apply(this, arguments)
continueToMainFile(debugServer, config)
return returnValue
}
return debugServer
}
util.inherits(DebugServer, OriginalDebugServer)
require('node-inspector/lib/debug-server').DebugServer = DebugServer
function continueToMainFile(debugServer, config) {
debugServer.on('listening', function() {
setTimeout(function() {
console.log(config)
var debug = new Debugger({
port: config.debugPort,
host: '127.0.0.1'
})
debug.send({command: 'continue'}, function() {
debug.send({
command: 'setBreakpoint',
arguments: {
type: 'scriptRegExp',
target: config.script,
line: 1,
column: 1
}
}, function(err, result) {
if (err) return
debug.on('event', function listener(event) {
if (event.event === 'break') {
debug.send({
command: 'clearbreakpoint',
arguments: {
type: 'scriptRegExp',
breakpoint: result.res.body.breakpoint
}
})
debug.client.end()
debug.removeListener('event', listener)
debug.removeListener('error', onError)
}
})
})
})
function onError(errObj) {}
debug.on('error', onError)
}, 1000)
})
}
require('node-inspector/bin/inspector')