clinch.jsx
Version:
React jsx processor for Clinch
73 lines (58 loc) • 1.72 kB
JavaScript
// Generated by CoffeeScript 1.10.0
/*
This is separate React jsx addon for Clinch processor
*/
(function() {
var babel, builder, extend, extension, get_options, preset_es2015, preset_react, processor;
extend = require('whet.extend');
babel = require('babel-core');
preset_react = require('babel-preset-react');
preset_es2015 = require('babel-preset-es2015');
extension = '.jsx';
get_options = function(filename, is_es2015_used) {
var presets;
presets = is_es2015_used ? [preset_react, preset_es2015] : [preset_react];
return {
ast: false,
presets: presets,
filename: filename
};
};
processor = function(data, filename, cb) {
var error, error1, result;
try {
result = babel.transform(data, get_options(filename));
} catch (error1) {
error = error1;
error.filename = filename;
return cb(error);
}
return cb(null, result.code, true);
};
builder = function(raw_options) {
var use_es2015;
use_es2015 = false;
if (raw_options.es2015 != null) {
use_es2015 = raw_options.es2015;
delete raw_options.es2015;
}
return {
extension: extension,
processor: function(data, filename, cb) {
var error, error1, options, result;
options = extend({}, raw_options, get_options(filename, use_es2015));
try {
result = babel.transform(data, options);
} catch (error1) {
error = error1;
error.filename = filename;
return cb(error);
}
return cb(null, result.code, true);
}
};
};
builder.extension = extension;
builder.processor = processor;
module.exports = builder;
}).call(this);