diff --git a/src/api.js b/src/api.js index a8308d7..f10df78 100644 --- a/src/api.js +++ b/src/api.js @@ -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); } diff --git a/src/options.js b/src/options.js index f66abfb..44dc199 100644 --- a/src/options.js +++ b/src/options.js @@ -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.' }, { diff --git a/src/reactTemplates.js b/src/reactTemplates.js index 6772d6f..21a649f 100644 --- a/src/reactTemplates.js +++ b/src/reactTemplates.js @@ -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'; diff --git a/test/src/rt.valid.spec.js b/test/src/rt.valid.spec.js index 4f5a441..52168ee 100644 --- a/test/src/rt.valid.spec.js +++ b/test/src/rt.valid.spec.js @@ -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 {