Skip to content

Instantly share code, notes, and snippets.

@arlolra
Created May 23, 2010 00:36
Show Gist options
  • Save arlolra/410496 to your computer and use it in GitHub Desktop.
Save arlolra/410496 to your computer and use it in GitHub Desktop.
// a lot of this from http://github.com/davglass/nodejs-yui3/blob/master/lib/node-yui3.js#L36-77
global.importScripts = function () {
var fs = require('fs'),
http = require('http'),
url = require('url');
//Script = process.binding('evals').Script,
var arglen = arguments.length;
if (arglen === 0) return;
var loader = function (err, data) {
if (err) throw err;
eval(data);
//var scriptObj = new Script(data, arg);
//scriptObj.runInThisContext();
}
for (var i=0; i < arglen; i++) {
var arg = arguments[i];
if (arg.match(/(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
var urlInfo = url.parse(arg, parseQueryString=false),
host = http.createClient(((urlInfo.protocol === 'http:') ? 80 : 443), urlInfo.hostname),
req_url = urlInfo.pathname;
if (urlInfo.search) {
req_url += urlInfo.search;
}
var request = host.request('GET', req_url, { host: urlInfo.hostname });
request.addListener('response', function (response) {
var data = '';
response.addListener('data', function (chunk) {
data += chunk;
});
response.addListener("end", function() {
loader(null, data);
});
});
request.end();
} else {
fs.readFile(arg, encoding='utf8', function (err, data) {
loader(err, data);
});
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment