Create require.main, remove process.cat()

This commit is contained in:
Ryan Dahl 2009-11-07 14:57:49 +01:00
parent 43121c15be
commit 1020efb6f7

View File

@ -124,16 +124,6 @@ process.assert = function (x, msg) {
if (!(x)) throw new Error(msg || "assertion error"); if (!(x)) throw new Error(msg || "assertion error");
}; };
process.cat = function(location, encoding) {
var url_re = new RegExp("^http:\/\/");
if (url_re.exec(location)) {
throw new Error("process.cat for http urls is temporarally disabled.");
}
//var f = url_re.exec(location) ? process.http.cat : process.fs.cat;
//return f(location, encoding);
return process.fs.cat(location, encoding);
};
// From jQuery.extend in the jQuery JavaScript Library v1.3.2 // From jQuery.extend in the jQuery JavaScript Library v1.3.2
// Copyright (c) 2009 John Resig // Copyright (c) 2009 John Resig
// Dual licensed under the MIT and GPL licenses. // Dual licensed under the MIT and GPL licenses.
@ -562,27 +552,35 @@ Module.prototype.loadObject = function (filename, loadPromise) {
}, 0); }, 0);
}; };
Module.prototype.loadScript = function (filename, loadPromise) { function cat (id, loadPromise) {
var self = this; var promise;
if (filename.match(/^http:\/\//)) {
var catPromise = new process.Promise(); if (id.match(/^http:\/\//)) {
loadModule('http', this) promise = new process.Promise();
loadModule('http', process.mainModule)
.addCallback(function(http) { .addCallback(function(http) {
http.cat(filename) http.cat(id)
.addCallback(function(content) { .addCallback(function(content) {
catPromise.emitSuccess(content); promise.emitSuccess(content);
}) })
.addErrback(function() { .addErrback(function() {
catPromise.emitError.apply(null, arguments); promise.emitError.apply(null, arguments);
}); });
}) })
.addErrback(function() { .addErrback(function() {
loadPromise.emitError(new Error("could not load core module \"http\"")); loadPromise.emitError(new Error("could not load core module \"http\""));
}); });
} else { } else {
var catPromise = process.cat(filename); promise = process.fs.cat(id);
} }
return promise;
}
Module.prototype.loadScript = function (filename, loadPromise) {
var self = this;
var catPromise = cat(filename, loadPromise);
catPromise.addErrback(function () { catPromise.addErrback(function () {
loadPromise.emitError(new Error("Error reading " + filename)); loadPromise.emitError(new Error("Error reading " + filename));
}); });
@ -601,6 +599,7 @@ Module.prototype.loadScript = function (filename, loadPromise) {
require.paths = process.paths; require.paths = process.paths;
require.async = requireAsync; require.async = requireAsync;
require.main = process.mainModule;
// create wrapper function // create wrapper function
var wrapper = "var __wrap__ = function (exports, require, module, __filename) { " var wrapper = "var __wrap__ = function (exports, require, module, __filename) { "
@ -651,10 +650,10 @@ if (process.ARGV[1].charAt(0) != "/" && !/^http:\/\//.exec(process.ARGV[1])) {
process.ARGV[1] = path.join(cwd, process.ARGV[1]); process.ARGV[1] = path.join(cwd, process.ARGV[1]);
} }
// Load the root module--the command line argument. // Load the main module--the command line argument.
var m = createModule("."); process.mainModule = createModule(".");
var loadPromise = new process.Promise(); var loadPromise = new process.Promise();
m.load(process.ARGV[1], loadPromise); process.mainModule.load(process.ARGV[1], loadPromise);
loadPromise.wait(); loadPromise.wait();
}()); // end annonymous namespace }()); // end annonymous namespace