mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
112f7aa249
We were doing some preprocessing for module options in the command line. Since we also expose the same API via react-tools (and JSXTransformer), we need to do the same processing from the API. So just move it all to the same place.
44 lines
1.4 KiB
JavaScript
Executable File
44 lines
1.4 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
// -*- mode: js -*-
|
|
'use strict';
|
|
|
|
var transform = require('../main').transform;
|
|
|
|
require('commoner').version(
|
|
require('../package.json').version
|
|
).resolve(function(id) {
|
|
return this.readModuleP(id);
|
|
}).option(
|
|
'--harmony',
|
|
'Turns on JS transformations such as ES6 Classes etc.'
|
|
).option(
|
|
'--strip-types',
|
|
'Strips out type annotations.'
|
|
).option(
|
|
'--es6module',
|
|
'Parses the file as a valid ES6 module. ' +
|
|
'(Note that this means implicit strict mode)'
|
|
).option(
|
|
'--non-strict-es6module',
|
|
'Parses the file as an ES6 module, except disables implicit strict-mode. ' +
|
|
'(This is useful if you\'re porting non-ES6 modules to ES6, but haven\'t ' +
|
|
'yet verified that they are strict-mode safe yet)'
|
|
).option(
|
|
'--source-map-inline',
|
|
'Embed inline sourcemap in transformed source'
|
|
).process(function(id, source) {
|
|
// This is where JSX, ES6, etc. desugaring happens.
|
|
// We don't do any pre-processing of options so that the command line and the
|
|
// JS API both expose the same set of options. We do extract the options that
|
|
// we care about from commoner though so we aren't passing too many things
|
|
// along.
|
|
var options = {
|
|
harmony: this.options.harmony,
|
|
sourceMap: this.options.sourceMapInline,
|
|
stripTypes: this.options.stripTypes,
|
|
es6module: this.options.es6module,
|
|
nonStrictEs6Module: this.options.nonStrictEs6Module
|
|
};
|
|
return transform(source, options);
|
|
});
|