fixed #34 api breaks

This commit is contained in:
ido 2015-04-26 16:37:25 +03:00
parent 9d868f7466
commit d12b61ca0b
3 changed files with 14 additions and 8 deletions

View File

@ -4,7 +4,7 @@ var fs = require('fs');
var path = require('path'); var path = require('path');
var chalk = require('chalk'); var chalk = require('chalk');
var reactTemplates = require('./reactTemplates'); var reactTemplates = require('./reactTemplates');
var convertTemplateToReact = reactTemplates.convertTemplateToReact; var convertRT = reactTemplates.convertRT;
var convertJSRTToJS = reactTemplates.convertJSRTToJS; var convertJSRTToJS = reactTemplates.convertJSRTToJS;
/** /**
@ -36,7 +36,7 @@ function convertFile(source, target, options, context) {
if (options.modules === 'jsrt') { if (options.modules === 'jsrt') {
js = convertJSRTToJS(html, context, options); js = convertJSRTToJS(html, context, options);
} else { } else {
js = convertTemplateToReact(html, context, options); js = convertRT(html, context, options);
} }
if (!options.dryRun) { if (!options.dryRun) {
fs.writeFileSync(target, js); fs.writeFileSync(target, js);

View File

@ -424,13 +424,18 @@ function validate(options, context, reportContext, node) {
} }
} }
function convertTemplateToReact(html, options) {
var context = require('./context');
return convertRT(html, context, options);
}
/** /**
* @param {string} html * @param {string} html
* @param {CONTEXT} reportContext * @param {CONTEXT} reportContext
* @param {{modules:string,defines:*}?} options * @param {{modules:string,defines:*}?} options
* @return {string} * @return {string}
*/ */
function convertTemplateToReact(html, reportContext, options) { function convertRT(html, reportContext, options) {
var rootNode = cheerio.load(html, {lowerCaseTags: false, lowerCaseAttributeNames: false, xmlMode: true, withStartIndices: true}); var rootNode = cheerio.load(html, {lowerCaseTags: false, lowerCaseAttributeNames: false, xmlMode: true, withStartIndices: true});
options = _.defaults({}, options, defaultOptions); options = _.defaults({}, options, defaultOptions);
var defines = options.defines ? options.defines : {'react/addons': 'React', lodash: '_'}; var defines = options.defines ? options.defines : {'react/addons': 'React', lodash: '_'};
@ -495,7 +500,7 @@ function convertJSRTToJS(text, reportContext, options) {
options.modules = 'jsrt'; options.modules = 'jsrt';
var templateMatcherJSRT = /<template>([^]*?)<\/template>/gm; var templateMatcherJSRT = /<template>([^]*?)<\/template>/gm;
var code = text.replace(templateMatcherJSRT, function (template, html) { var code = text.replace(templateMatcherJSRT, function (template, html) {
return convertTemplateToReact(html, reportContext, options).replace(/;$/, ''); return convertRT(html, reportContext, options).replace(/;$/, '');
}); });
try { try {
var tree = esprima.parse(code, {range: true, tokens: true, comment: true}); var tree = esprima.parse(code, {range: true, tokens: true, comment: true});
@ -535,6 +540,7 @@ function normalizeName(name) {
module.exports = { module.exports = {
convertTemplateToReact: convertTemplateToReact, convertTemplateToReact: convertTemplateToReact,
convertRT: convertRT,
convertJSRTToJS: convertJSRTToJS, convertJSRTToJS: convertJSRTToJS,
RTCodeError: RTCodeError, RTCodeError: RTCodeError,
normalizeName: normalizeName, normalizeName: normalizeName,

View File

@ -41,7 +41,7 @@ test('invalid tests', function (t) {
var html = readFileNormalized(filename); var html = readFileNormalized(filename);
var error = null; var error = null;
try { try {
reactTemplates.convertTemplateToReact(html, context); reactTemplates.convertTemplateToReact(html);
} catch (e) { } catch (e) {
error = e; error = e;
} }
@ -109,7 +109,7 @@ test('conversion test', function (t) {
var html = readFileNormalized(filename); var html = readFileNormalized(filename);
var expected = readFileNormalized(filename + '.js'); var expected = readFileNormalized(filename + '.js');
// var expected = fs.readFileSync(filename.replace(".html", ".js")).toString(); // var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
var actual = reactTemplates.convertTemplateToReact(html, context).replace(/\r/g, '').trim(); var actual = reactTemplates.convertTemplateToReact(html).replace(/\r/g, '').trim();
compareAndWrite(t, actual, expected, filename); compareAndWrite(t, actual, expected, filename);
} }
}); });
@ -143,7 +143,7 @@ test('convert div with all module types', function (t) {
var html = readFileNormalized(filename); var html = readFileNormalized(filename);
var expected = readFileNormalized(path.join(dataPath, testData.expected)); var expected = readFileNormalized(path.join(dataPath, testData.expected));
// var expected = fs.readFileSync(filename.replace(".html", ".js")).toString(); // var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
var actual = reactTemplates.convertTemplateToReact(html, context, testData.options).replace(/\r/g, '').trim(); var actual = reactTemplates.convertTemplateToReact(html, testData.options).replace(/\r/g, '').trim();
compareAndWrite(t, actual, expected, filename); compareAndWrite(t, actual, expected, filename);
} }
}); });
@ -186,7 +186,7 @@ test('html tests', function (t) {
var html = fs.readFileSync(filename).toString(); var html = fs.readFileSync(filename).toString();
var expected = readFileNormalized(filename + '.html'); var expected = readFileNormalized(filename + '.html');
// var expected = fs.readFileSync(filename.replace(".html", ".js")).toString(); // var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
var code = reactTemplates.convertTemplateToReact(html, context).replace(/\r/g, ''); var code = reactTemplates.convertTemplateToReact(html).replace(/\r/g, '');
var defineMap = {'react/addons': React, lodash: _}; var defineMap = {'react/addons': React, lodash: _};
//noinspection JSUnusedLocalSymbols //noinspection JSUnusedLocalSymbols
var define = function (requirementsNames, content) { //eslint-disable-line no-unused-vars var define = function (requirementsNames, content) { //eslint-disable-line no-unused-vars