Skip to content

Commit

Permalink
self now assigned to this. Converted event handling to dependency-pro…
Browse files Browse the repository at this point in the history
…mise. Commented out some initial code for watch mode (fs.watchFile).
  • Loading branch information
bnoguchi committed Mar 14, 2011
1 parent a0d6dc5 commit dd9d44c
Showing 1 changed file with 16 additions and 16 deletions.
32 changes: 16 additions & 16 deletions lib/browser-require.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ function ScriptPromise (name, location, npmBase) {
}

ScriptPromise.prototype.__proto__ = EventEmitter.prototype;
for (var k in dependencyPromise) {
ScriptPromise.prototype[k] = dependencyPromise[k];
}


ScriptPromise.modules = {};

Expand Down Expand Up @@ -144,13 +148,13 @@ ScriptPromise.lookupNpm = function (name, fn) {
};

ScriptPromise.prototype.onError = function (err) {
throw new Error(err);
throw err;
};

ScriptPromise.prototype.load = function () {
var self = this;
fs.readFile(this.location, 'utf8', function (err, src) {
if (err) return self.emit('error', err);
if (err) return self.trigger('error', err);
self.src = src;
var depNames = self.depsFor(src);
if (!depNames.length)
Expand All @@ -172,13 +176,13 @@ ScriptPromise.prototype.load = function () {
});

// For --watch
fs.watchFile(this.location, function (curr, prev) {
if (curr.mtime.getTime() > prev.mtime.getTime()) {
self.reload();
} else {
throw new Error("Times are weird");
}
});
// fs.watchFile(this.location, function (curr, prev) {
// if (curr.mtime.getTime() > prev.mtime.getTime()) {
// self.reload();
// } else {
// throw new Error("Times are weird");
// }
// });
}
ScriptPromise.prototype.depsFor = function (src) {
var re = /^[^(?:\*|\/)]*\s*require\(['"]([^'"]+)['"]\)/gm
Expand All @@ -190,23 +194,19 @@ ScriptPromise.prototype.depsFor = function (src) {
return deps;
};
ScriptPromise.prototype.reload = function (src) {
var self;
var self = this;
fs.readFile(this.location, 'utf8', function (err, src) {
if (err) return self.emit('error', err);
if (err) return self.trigger('error', err);
self.src = src;
// Check for dependency additions or removals
var depNames = self.depsFor(src);
// TODO

// Notify anyone who depends on me
self.emit('reloaded', src);
self.trigger('reloaded', src);
});
};

for (var k in dependencyPromise) {
ScriptPromise.prototype[k] = dependencyPromise[k];
}

function wrapDeps (script) {
var src = {}
, deps = script.dependenciesFor('loaded')
Expand Down

0 comments on commit dd9d44c

Please sign in to comment.