var CoffeeScript, fs, helpers, transform;
fs = require('fs');
transform = require('coffee-react-transform');
helpers = require('./helpers');
CoffeeScript = require('coffee-script/lib/coffee-script/coffee-script');
if (!CoffeeScript._cjsx) {
CoffeeScript._cjsx = true;
CoffeeScript.FILE_EXTENSIONS.push('.cjsx');
CoffeeScript.register = function() {
return require('./register');
};
CoffeeScript._csCompile = CoffeeScript.compile;
CoffeeScript.compile = function(code, options) {
var input;
input = transform(code, options);
return CoffeeScript._csCompile(input, options);
};
CoffeeScript._compileFile = function(filename, sourceMap) {
var answer, err, raw, stripped;
if (sourceMap == null) {
sourceMap = false;
}
raw = fs.readFileSync(filename, 'utf8');
stripped = raw.charCodeAt(0) === 0xFEFF ? raw.substring(1) : raw;
try {
answer = CoffeeScript.compile(stripped, {
filename: filename,
sourceMap: sourceMap,
literate: helpers.isLiterate(filename)
});
} catch (_error) {
err = _error;
throw helpers.updateSyntaxError(err, stripped, filename);
}
return answer;
};
CoffeeScript.hasCJSXPragma = helpers.hasCJSXPragma;
CoffeeScript.hasCJSXExtension = helpers.hasCJSXExtension;
CoffeeScript.transform = transform;
}
module.exports = CoffeeScript;