Skip to content

Commit

Permalink
...
Browse files Browse the repository at this point in the history
  • Loading branch information
ry committed Feb 7, 2011
1 parent ca4ab71 commit d63fb23
Showing 1 changed file with 52 additions and 6 deletions.
58 changes: 52 additions & 6 deletions lib/module.js
Expand Up @@ -205,6 +205,26 @@ Module._load = function(request, parent, isMain) {
Module._cache[filename] = module;
module.load(filename);

if (process.reloadMode) {
console.log("filename: " + module.filename);
require('fs').watchFile(module.filename,
{ persistent: false },
function () {
if (module.timeout) return;

module.timeout = setTimeout(function() {
console.error(module.filename + ': change detected. reloading.');

module.reload(function() {
console.error(module.filename + ': done reloading.');
});

module.timeout = null;
}, 1000);

});
}

return module.exports;
};

Expand All @@ -229,6 +249,37 @@ Module._resolveFilename = function(request, parent) {
return [id, filename];
};

Module.prototype.reload = function(cb) {
var self = this;
debugger;
//var newSource = require('fs').readFileSync(this.filename, 'utf8');
console.log("DONE");
//console.log(newSource);


require('fs').readFile(this.filename, 'utf8', function(err, newSource) {

if (err) throw err;

console.log(arguments);
var script = Debug.findScript(self.compiledWrapper);

/*
console.log("old source");
console.log(script.source);
console.log("new source");
console.log(newSource);
*/

var changeLog = new Array();
var rv = Debug.LiveEdit.SetScriptSource(script, newSource, false, changeLog);

console.log("rv ", rv);
console.log("change log", changeLog);
if (cb) cb(changeLog);
});
};


Module.prototype.load = function(filename) {
debug('load ' + JSON.stringify(filename) +
Expand Down Expand Up @@ -309,12 +360,7 @@ Module.prototype._compile = function(content, filename) {
var args = [self.exports, require, self, filename, dirname];
var rv = compiledWrapper.apply(self.exports, args);

if (process.reloadMode) {
console.log("hello world");
console.log(Debug);
var script = Debug.findScript(compiledWrapper);
console.log(script.source);
}
this.compiledWrapper = compiledWrapper;

return rv;
};
Expand Down

0 comments on commit d63fb23

Please sign in to comment.