Allow required files to change the input and output of compiled files.

This commit is contained in:
Stan Angeloff
2010-08-13 01:28:38 +03:00
parent 083500fc0e
commit d30c8b321c
2 changed files with 26 additions and 11 deletions

View File

@@ -95,7 +95,7 @@
return _d;
};
compileScript = function(source, code, base) {
var _d, _e, _f, codeOpts, file, js, o;
var _d, _e, _f, _g, _h, codeOpts, file, js, o, task;
o = options;
codeOpts = compileOptions(source);
if (o.require) {
@@ -106,12 +106,21 @@
}
}
try {
CoffeeScript.emit('compile', {
CoffeeScript.emit('compile', (task = {
source: source,
code: code,
base: base,
options: options
});
options: options,
codeOpts: codeOpts
}));
if (CoffeeScript.listeners('compile')) {
_g = task;
source = _g.source;
code = _g.code;
base = _g.base;
options = _g.options;
codeOpts = _g.codeOpts;
}
if (o.tokens) {
return printTokens(CoffeeScript.tokens(code));
} else if (o.nodes) {
@@ -119,8 +128,12 @@
} else if (o.run) {
return CoffeeScript.run(code, codeOpts);
} else {
js = CoffeeScript.compile(code, codeOpts);
CoffeeScript.emit('success', js);
js = (task.js = CoffeeScript.compile(code, codeOpts));
CoffeeScript.emit('success', task);
if (CoffeeScript.listeners('success')) {
_h = task;
js = _h.js;
}
if (o.print) {
return print(js);
} else if (o.compile) {
@@ -130,7 +143,7 @@
}
}
} catch (err) {
CoffeeScript.emit('failure', err);
CoffeeScript.emit('failure', err, task);
if (CoffeeScript.listeners('failure').length) {
return null;
}