mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
47 lines
1.3 KiB
JavaScript
Executable File
47 lines
1.3 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) {
|
|
var sourceType;
|
|
if (this.options.es6module) {
|
|
sourceType = 'module';
|
|
}
|
|
if (this.options.nonStrictEs6module) {
|
|
sourceType = 'nonStrictModule';
|
|
}
|
|
|
|
// This is where JSX, ES6, etc. desugaring happens.
|
|
var options = {
|
|
harmony: this.options.harmony,
|
|
sourceMap: this.options.sourceMapInline,
|
|
stripTypes: this.options.stripTypes,
|
|
sourceType: sourceType,
|
|
};
|
|
return transform(source, options);
|
|
});
|