aframe-physics-extras
Version:
Cannon API interface components the A-Frame Physics System.
55 lines (47 loc) • 1.2 kB
JavaScript
// a thin wrapper around tiny-lr module
var log = require('bole')('budo')
var xtend = require('xtend')
var tinylr = require('tiny-lr')
module.exports = function (opt) {
opt = xtend(opt)
if (typeof opt.port !== 'number') {
opt.port = 35729
}
var server = tinylr()
var closed = false
var ready = false
server.listen(opt.port, opt.host || undefined, function () {
ready = true
if (closed) return server.close()
log.info({ message: 'LiveReload running on ' + opt.port })
})
var serverImpl = server.server
serverImpl.removeAllListeners('error')
serverImpl.on('error', function (err) {
if (err.code === 'EADDRINUSE') {
process.stderr.write('ERROR: livereload not started, port ' + opt.port + ' is in use\n')
} else {
process.stderr.write((err.stack ? err.stack : err) + '\n')
}
close()
})
function close () {
if (closed) return
if (ready) server.close()
closed = true
}
return {
close: close,
reload: function reload (path) {
try {
server.changed({
body: {
files: path ? [ path ] : '*'
}
})
} catch (e) {
throw e
}
}
}
}