From 0489b32928f312ec62ca264dbee6c1ce5f565169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Wed, 30 Jul 2014 21:51:21 -0700 Subject: [PATCH] start the transfer --- bin/jsx-internal | 8 ++- jest/preprocessor.js | 2 +- {bin => npm-react-tools/bin}/jsx | 0 .../lib}/syntax.js | 0 .../__tests__/react-displayName-test.js | 0 .../lib}/transforms/__tests__/react-test.js | 0 .../lib}/transforms/react.js | 0 .../lib}/transforms/reactDisplayName.js | 0 .../lib}/transforms/xjs.js | 0 .../lib}/visitors.js | 0 main.js => npm-react-tools/main.js | 2 +- npm-react-tools/package.json | 55 +++++++++++++++++++ package.json | 39 +++---------- vendor/browser-transforms.js | 21 +++---- 14 files changed, 78 insertions(+), 49 deletions(-) rename {bin => npm-react-tools/bin}/jsx (100%) rename {vendor/fbtransform => npm-react-tools/lib}/syntax.js (100%) rename {vendor/fbtransform => npm-react-tools/lib}/transforms/__tests__/react-displayName-test.js (100%) rename {vendor/fbtransform => npm-react-tools/lib}/transforms/__tests__/react-test.js (100%) rename {vendor/fbtransform => npm-react-tools/lib}/transforms/react.js (100%) rename {vendor/fbtransform => npm-react-tools/lib}/transforms/reactDisplayName.js (100%) rename {vendor/fbtransform => npm-react-tools/lib}/transforms/xjs.js (100%) rename {vendor/fbtransform => npm-react-tools/lib}/visitors.js (100%) rename main.js => npm-react-tools/main.js (96%) create mode 100644 npm-react-tools/package.json diff --git a/bin/jsx-internal b/bin/jsx-internal index 430e596cf1b..b904a5bb9c9 100755 --- a/bin/jsx-internal +++ b/bin/jsx-internal @@ -2,8 +2,10 @@ // -*- mode: js -*- "use strict"; -var getAllVisitors = require('../vendor/fbtransform/visitors').getAllVisitors; -var transform = require('jstransform').transform; +// var getAllVisitors = require('react-tools/lib/visitors').getAllVisitors; +// var transform = require('jstransform').transform; + +var transform = require('react-tools').transform; var propagate = require("../vendor/constants").propagate; require("commoner").version( @@ -31,7 +33,7 @@ require("commoner").version( var constants = context.config.constants || {}; // This is where JSX, ES6, etc. desugaring happens. - source = transform(getAllVisitors(), source).code; + source = transform(source, {harmony: true}) // Constant propagation means removing any obviously dead code after // replacing constant expressions with literal (boolean) values. diff --git a/jest/preprocessor.js b/jest/preprocessor.js index 06ef3f2e22f..c7d7fd14b1b 100644 --- a/jest/preprocessor.js +++ b/jest/preprocessor.js @@ -1,6 +1,6 @@ "use strict"; -var ReactTools = require('../main.js'); +var ReactTools = require('react-tools'); module.exports = { process: function(src) { diff --git a/bin/jsx b/npm-react-tools/bin/jsx similarity index 100% rename from bin/jsx rename to npm-react-tools/bin/jsx diff --git a/vendor/fbtransform/syntax.js b/npm-react-tools/lib/syntax.js similarity index 100% rename from vendor/fbtransform/syntax.js rename to npm-react-tools/lib/syntax.js diff --git a/vendor/fbtransform/transforms/__tests__/react-displayName-test.js b/npm-react-tools/lib/transforms/__tests__/react-displayName-test.js similarity index 100% rename from vendor/fbtransform/transforms/__tests__/react-displayName-test.js rename to npm-react-tools/lib/transforms/__tests__/react-displayName-test.js diff --git a/vendor/fbtransform/transforms/__tests__/react-test.js b/npm-react-tools/lib/transforms/__tests__/react-test.js similarity index 100% rename from vendor/fbtransform/transforms/__tests__/react-test.js rename to npm-react-tools/lib/transforms/__tests__/react-test.js diff --git a/vendor/fbtransform/transforms/react.js b/npm-react-tools/lib/transforms/react.js similarity index 100% rename from vendor/fbtransform/transforms/react.js rename to npm-react-tools/lib/transforms/react.js diff --git a/vendor/fbtransform/transforms/reactDisplayName.js b/npm-react-tools/lib/transforms/reactDisplayName.js similarity index 100% rename from vendor/fbtransform/transforms/reactDisplayName.js rename to npm-react-tools/lib/transforms/reactDisplayName.js diff --git a/vendor/fbtransform/transforms/xjs.js b/npm-react-tools/lib/transforms/xjs.js similarity index 100% rename from vendor/fbtransform/transforms/xjs.js rename to npm-react-tools/lib/transforms/xjs.js diff --git a/vendor/fbtransform/visitors.js b/npm-react-tools/lib/visitors.js similarity index 100% rename from vendor/fbtransform/visitors.js rename to npm-react-tools/lib/visitors.js diff --git a/main.js b/npm-react-tools/main.js similarity index 96% rename from main.js rename to npm-react-tools/main.js index f083a88ac7b..9fbaf2a5f61 100644 --- a/main.js +++ b/npm-react-tools/main.js @@ -1,6 +1,6 @@ 'use strict'; -var visitors = require('./vendor/fbtransform/visitors'); +var visitors = require('./lib/visitors'); var transform = require('jstransform').transform; var Buffer = require('buffer').Buffer; diff --git a/npm-react-tools/package.json b/npm-react-tools/package.json new file mode 100644 index 00000000000..939fcbe0e37 --- /dev/null +++ b/npm-react-tools/package.json @@ -0,0 +1,55 @@ +{ + "name": "react-tools", + "description": "A set of complementary tools to React, including the JSX transformer.", + "version": "0.12.0-alpha", + "keywords": [ + "react", + "jsx", + "transformer", + "view" + ], + "homepage": "http://facebook.github.io/react", + "bugs": "https://github.com/facebook/react/issues", + "licenses": [ + { + "type": "Apache-2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0" + } + ], + "files": [ + "main.js", + "bin/jsx", + "lib/" + ], + "main": "main.js", + "bin": { + "jsx": "./bin/jsx" + }, + "repository": { + "type": "git", + "url": "https://github.com/facebook/react" + }, + "dependencies": { + "commoner": "^0.9.6", + "esprima-fb": "^4001.3001.0-dev-harmony-fb", + "jstransform": "^6.0.1" + }, + "engines": { + "node": ">=0.10.0" + }, + "preferGlobal": true, + "commonerConfig": { + "version": 4 + }, + "scripts": { + "test": "./node_modules/.bin/grunt test" + }, + "jest": { + "rootDir": "src", + "scriptPreprocessor": "../jest/preprocessor.js", + "setupEnvScriptFile": "../jest/environment.js", + "unmockedModulePathPatterns": [ + "" + ] + } +} diff --git a/package.json b/package.json index 251e061a6ee..dbb7d9e2e00 100644 --- a/package.json +++ b/package.json @@ -1,39 +1,13 @@ { - "name": "react-tools", - "description": "A set of complementary tools to React, including the JSX transformer.", + "name": "react-build", + "description": "Build React here now.", + "private": true, "version": "0.12.0-alpha", - "keywords": [ - "react", - "jsx", - "transformer", - "view" - ], - "homepage": "http://facebook.github.io/react", - "bugs": "https://github.com/facebook/react/issues", - "licenses": [ - { - "type": "Apache-2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0" - } - ], - "files": [ - "main.js", - "bin/jsx", - "src/", - "vendor/fbtransform/" - ], - "main": "main.js", - "bin": { - "jsx": "./bin/jsx" - }, - "repository": { - "type": "git", - "url": "https://github.com/facebook/react" - }, "dependencies": { "commoner": "^0.9.6", "esprima-fb": "^4001.3001.0-dev-harmony-fb", - "jstransform": "^6.0.1" + "jstransform": "^6.0.1", + "react-tools": "*" }, "devDependencies": { "benchmark": "~1.0.0", @@ -75,7 +49,8 @@ "version": 4 }, "scripts": { - "test": "./node_modules/.bin/grunt test" + "test": "./node_modules/.bin/grunt test", + "jest": "./node_modules/.bin/jest" }, "jest": { "rootDir": "src", diff --git a/vendor/browser-transforms.js b/vendor/browser-transforms.js index 32c11945c9b..58e15a21bbe 100644 --- a/vendor/browser-transforms.js +++ b/vendor/browser-transforms.js @@ -20,8 +20,9 @@ var buffer = require('buffer'); var docblock = require('jstransform/src/docblock'); -var transform = require('jstransform').transform; -var visitors = require('./fbtransform/visitors'); +// var transform = require('jstransform').transform; +// var visitors = require('./fbtransform/visitors'); +var ReactTools = require('react-tools'); var headEl; var dummyAnchor; @@ -41,17 +42,13 @@ var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__'); * @return {object} object as returned from jstransform */ function transformReact(source, options) { - // TODO: just use react-tools - var visitorList; - if (options && options.harmony) { - visitorList = visitors.getAllVisitors(); - } else { - visitorList = visitors.transformVisitors.react; - } - - return transform(visitorList, source, { + var opts = { + harmony: options && options.harmony, sourceMap: supportsAccessors - }); + }; + + // Current API of this is { code: result }, so use transformWithDetails + return ReactTools.transformWithDetails(source, opts); } /**