Fix #167 --native CLI behaviour

This commit is contained in:
Antonino Porcino 2016-07-06 19:53:42 +02:00
parent 46caeea387
commit a993ebffde
4 changed files with 13 additions and 11 deletions

View File

@ -32,12 +32,13 @@ function convertFile(source, target, options, context) {
}
return;
}
const shouldAddName = options.modules === 'none' && !options.name;
const modules = options.modules || 'none';
const shouldAddName = modules === 'none' && !options.name;
if (shouldAddName) {
options.name = reactTemplates.normalizeName(path.basename(source, path.extname(source))) + 'RT';
}
options.readFileSync = fsUtil.createRelativeReadFileSync(source);
const js = options.modules === 'jsrt' ? convertJSRTToJS(html, context, options) : convertRT(html, context, options);
const js = modules === 'jsrt' ? convertJSRTToJS(html, context, options) : convertRT(html, context, options);
if (!options.dryRun) {
fs.writeFileSync(target, js);
}

View File

@ -43,8 +43,8 @@ $ rt <filename> [<filename> ...] [<args>]`,
}, {
option: 'modules',
alias: 'm',
default: 'none',
type: 'String',
enum: ['amd', 'commonjs', 'none', 'es6', 'typescript', 'jsrt'],
description: 'Use output modules. (amd|commonjs|none|es6|typescript|jsrt)'
}, {
option: 'name',
@ -93,7 +93,6 @@ $ rt <filename> [<filename> ...] [<args>]`,
description: 'Show stack trace on errors.'
}, {
option: 'react-import-path',
default: 'react/addons',
type: 'String',
description: 'Dependency path for importing React.'
}, {

View File

@ -75,8 +75,8 @@ function getOptions(options) {
};
const finalOptions = _.defaults({}, options, defaultOptions);
finalOptions.reactImportPath = finalOptions.reactImportPath || reactImport(finalOptions);
finalOptions.modules = finalOptions.modules || (finalOptions.native ? 'commonjs' : 'amd');
finalOptions.reactImportPath = reactImport(finalOptions);
finalOptions.modules = finalOptions.modules || (finalOptions.native ? 'commonjs' : 'none');
const defaultPropTemplates = finalOptions.native ?
reactPropTemplates.native[finalOptions.nativeTargetVersion] :
@ -90,7 +90,7 @@ function reactImport(options) {
if (options.native) {
return 'react-native';
}
if (options.targetVersion === '0.14.0' || options.targetVersion === '0.15.0' || options.targetVersion === '15.0.0' || options.targetVersion === '15.0.1') {
if (_.includes(['0.14.0', '0.15.0', '15.0.0', '15.0.1'], options.targetVersion)) {
return 'react';
}
return 'react/addons';

View File

@ -25,12 +25,12 @@ module.exports = {
test('rt-if with rt-scope test', t => {
const files = ['if-with-scope/valid-if-scope.rt'];
testFiles(t, files);
testFiles(t, files, {modules: 'amd'});
});
test('conversion test', t => {
const files = ['div.rt', 'test.rt', 'repeat.rt', 'repeat-with-index.rt', 'inputs.rt', 'virtual.rt', 'stateless.rt', 'style-vendor-prefix.rt'];
testFiles(t, files);
testFiles(t, files, {modules: 'amd'});
});
test('prop template conversion test', t => {
@ -39,7 +39,8 @@ module.exports = {
List: {
Row: {prop: 'renderRow', arguments: ['rowData']}
}
}
},
modules: 'amd'
};
const files = ['propTemplates/simpleTemplate.rt', 'propTemplates/templateInScope.rt', 'propTemplates/implicitTemplate.rt', 'propTemplates/twoTemplates.rt'];
testFiles(t, files, options);
@ -180,7 +181,8 @@ module.exports = {
function check(testFile) {
const filename = path.join(dataPath, testFile);
const options = {
readFileSync: fsUtil.createRelativeReadFileSync(filename)
readFileSync: fsUtil.createRelativeReadFileSync(filename),
modules: 'amd'
};
let code = '';
try {