From e830cea05096b07c5096b935d10ed0b839407071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Thu, 19 Feb 2015 15:23:29 -0800 Subject: [PATCH] Lint vendor/fbtransform as well --- .eslintignore | 2 ++ grunt/tasks/eslint.js | 10 +++++++++- vendor/fbtransform/.eslintrc | 9 +++++++++ .../__tests__/react-displayName-test.js | 2 +- .../transforms/__tests__/react-test.js | 15 +++++++++------ vendor/fbtransform/transforms/react.js | 2 +- vendor/fbtransform/transforms/reactDisplayName.js | 10 +++++----- vendor/fbtransform/transforms/xjs.js | 4 ++-- vendor/fbtransform/visitors.js | 3 +++ 9 files changed, 41 insertions(+), 16 deletions(-) create mode 100644 vendor/fbtransform/.eslintrc diff --git a/.eslintignore b/.eslintignore index edf82896f93a9..47be5b052994e 100644 --- a/.eslintignore +++ b/.eslintignore @@ -7,3 +7,5 @@ src/**/__tests__/** # This should be enabled but that folder has too much in it that doesn't belong src/test test/the-files-to-test.generated.js +# This is synced with a different file internally, don't want to lint it yet +vendor/fbtransform/syntax.js diff --git a/grunt/tasks/eslint.js b/grunt/tasks/eslint.js index 84a275fed49d9..098039cc076dc 100644 --- a/grunt/tasks/eslint.js +++ b/grunt/tasks/eslint.js @@ -6,7 +6,15 @@ module.exports = function() { var done = this.async(); grunt.util.spawn({ cmd: 'node_modules/.bin/eslint', - args: ['src/', 'Gruntfile.js', 'grunt/', 'main.js', 'perf/', 'test/'] + args: [ + 'src/', + 'Gruntfile.js', + 'grunt/', + 'main.js', + 'perf/', + 'test/', + 'vendor/fbtransform' + ] }, function(err, result, code) { if (err) { grunt.log.error('Lint failed'); diff --git a/vendor/fbtransform/.eslintrc b/vendor/fbtransform/.eslintrc new file mode 100644 index 0000000000000..4f4e56f23345a --- /dev/null +++ b/vendor/fbtransform/.eslintrc @@ -0,0 +1,9 @@ +--- +globals: + describe: true + expect: true + it: true + jest: true + +rules: + no-process-exit: 0 diff --git a/vendor/fbtransform/transforms/__tests__/react-displayName-test.js b/vendor/fbtransform/transforms/__tests__/react-displayName-test.js index 4b58d933b2100..43c3f8ebc938b 100644 --- a/vendor/fbtransform/transforms/__tests__/react-displayName-test.js +++ b/vendor/fbtransform/transforms/__tests__/react-displayName-test.js @@ -8,7 +8,7 @@ * * @emails react-core */ -"use strict"; +'use strict'; require('mock-modules').autoMockOff(); diff --git a/vendor/fbtransform/transforms/__tests__/react-test.js b/vendor/fbtransform/transforms/__tests__/react-test.js index fdd26cd7ce535..44b7b3b76a58b 100644 --- a/vendor/fbtransform/transforms/__tests__/react-test.js +++ b/vendor/fbtransform/transforms/__tests__/react-test.js @@ -11,13 +11,12 @@ /*jshint evil:true, unused:false*/ -"use strict"; +'use strict'; require('mock-modules').autoMockOff(); describe('react jsx', function() { var transformAll = require('../../syntax.js').transformAll; - var xjs = require('../xjs.js'); var transform = function(code, options, excludes) { return transformAll( @@ -34,13 +33,15 @@ describe('react jsx', function() { var z = 345678; var expectObjectAssign = function(code) { + /*eslint-disable no-unused-vars, no-eval*/ var Component = jest.genMockFunction(); var Child = jest.genMockFunction(); var objectAssignMock = jest.genMockFunction(); React.__spread = objectAssignMock; eval(transform(code).code); return expect(objectAssignMock); - } + /*eslint-enable*/ + }; var React = { createElement: jest.genMockFunction() @@ -338,7 +339,9 @@ describe('react jsx', function() { it('should not throw for unknown hyphenated tags', function() { var code = ';'; - expect(function() {transform(code);}).not.toThrow(); + expect(function() { + transform(code); + }).not.toThrow(); }); it('calls assign with a new target object for spreads', function() { @@ -368,13 +371,13 @@ describe('react jsx', function() { it('passes the same value multiple times to React.__spread', function() { expectObjectAssign( '' - ).toBeCalledWith({x: 1, y: "2"}, z, z); + ).toBeCalledWith({x: 1, y: '2'}, z, z); }); it('evaluates sequences before passing them to React.__spread', function() { expectObjectAssign( 'Text' - ).toBeCalledWith({x: "1"}, {y: 2}, {z: 3}); + ).toBeCalledWith({x: '1'}, {y: 2}, {z: 3}); }); }); diff --git a/vendor/fbtransform/transforms/react.js b/vendor/fbtransform/transforms/react.js index 9c43b4cebefec..1827ddd819afd 100644 --- a/vendor/fbtransform/transforms/react.js +++ b/vendor/fbtransform/transforms/react.js @@ -7,7 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. */ /*global exports:true*/ -"use strict"; +'use strict'; var Syntax = require('jstransform').Syntax; var utils = require('jstransform/src/utils'); diff --git a/vendor/fbtransform/transforms/reactDisplayName.js b/vendor/fbtransform/transforms/reactDisplayName.js index 09bd18736c70d..30214cc46e5d6 100644 --- a/vendor/fbtransform/transforms/reactDisplayName.js +++ b/vendor/fbtransform/transforms/reactDisplayName.js @@ -7,7 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. */ /*global exports:true*/ -"use strict"; +'use strict'; var Syntax = require('jstransform').Syntax; var utils = require('jstransform/src/utils'); @@ -20,10 +20,10 @@ function addDisplayName(displayName, object, state) { object.callee.object.name === 'React' && object.callee.property.type === Syntax.Identifier && object.callee.property.name === 'createClass' && - object['arguments'].length === 1 && - object['arguments'][0].type === Syntax.ObjectExpression) { + object.arguments.length === 1 && + object.arguments[0].type === Syntax.ObjectExpression) { // Verify that the displayName property isn't already set - var properties = object['arguments'][0].properties; + var properties = object.arguments[0].properties; var safe = properties.every(function(property) { var value = property.key.type === Syntax.Identifier ? property.key.name : @@ -32,7 +32,7 @@ function addDisplayName(displayName, object, state) { }); if (safe) { - utils.catchup(object['arguments'][0].range[0] + 1, state); + utils.catchup(object.arguments[0].range[0] + 1, state); utils.append('displayName: "' + displayName + '",', state); } } diff --git a/vendor/fbtransform/transforms/xjs.js b/vendor/fbtransform/transforms/xjs.js index 082c3049d83c0..13173aa1ba056 100644 --- a/vendor/fbtransform/transforms/xjs.js +++ b/vendor/fbtransform/transforms/xjs.js @@ -7,7 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. */ /*global exports:true*/ -"use strict"; +'use strict'; var Syntax = require('jstransform').Syntax; var utils = require('jstransform/src/utils'); @@ -49,7 +49,7 @@ function renderXJSLiteral(object, isLast, state, start, end) { if (trimmedLine || isLastNonEmptyLine) { utils.append( JSON.stringify(trimmedLine) + - (!isLastNonEmptyLine ? " + ' ' +" : ''), + (!isLastNonEmptyLine ? ' + \' \' +' : ''), state); if (isLastNonEmptyLine) { diff --git a/vendor/fbtransform/visitors.js b/vendor/fbtransform/visitors.js index a15a1fc2aa0d2..0c3111433ba4e 100644 --- a/vendor/fbtransform/visitors.js +++ b/vendor/fbtransform/visitors.js @@ -1,4 +1,7 @@ /*global exports:true*/ + +'use strict'; + var es6ArrowFunctions = require('jstransform/visitors/es6-arrow-function-visitors'); var es6Classes = require('jstransform/visitors/es6-class-visitors'); var es6Destructuring = require('jstransform/visitors/es6-destructuring-visitors');