Skip to content

Instantly share code, notes, and snippets.

@sclark39
Created October 7, 2017 17:39
Show Gist options
  • Save sclark39/f1136938a7f368d9eb36e3a4b8494aa3 to your computer and use it in GitHub Desktop.
Save sclark39/f1136938a7f368d9eb36e3a4b8494aa3 to your computer and use it in GitHub Desktop.
Endless loop, re-runs code every time file change is detected.
var co = require('co')
var Promise = require("bluebird")
var chokidar = require('chokidar')
var hotloadFile = 'hotload.js'
var watcher = chokidar.watch( hotloadFile )
function waitForHotload()
{
return new Promise( (fulfill, reject) => watcher.once( 'change', fulfill ) )
}
co( function*()
{
try
{
// Wait for hotload file change loop
while (true)
{
try
{
delete require.cache[ require.resolve( `./${hotloadFile}`) ]
var ret = yield require( `./${hotloadFile}` )(rl, driver, crawler)
if ( ret )
break
}
catch (err)
{
console.log( err )
}
yield waitForHotload();
}
} catch (err) {
console.log(err)
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment