From 466f4faf4e61f93fb9c4b01b79c6cfbc250bb340 Mon Sep 17 00:00:00 2001 From: chico Date: Fri, 20 Feb 2015 04:06:15 +0300 Subject: [PATCH] lint from root --- .eslintignore | 9 +++- docs/_js/examples/.eslintrc | 3 ++ docs/extractCode.js | 12 +++--- examples/ballmer-peak/example.js | 42 +++++++++++++++++++ examples/basic-commonjs/index.js | 2 + examples/jquery-bootstrap/js/app.js | 2 + examples/server-rendering/jsapp/src/App.js | 2 + .../server-rendering/reactserver/server.js | 8 ++-- grunt/tasks/eslint.js | 10 +---- jest/preprocessor.js | 2 +- jest/ts-preprocessor.js | 12 ++++-- npm-jsx_orphaned_brackets_transformer/run.js | 8 +++- .../transforms/react.js | 2 +- 13 files changed, 88 insertions(+), 26 deletions(-) create mode 100644 docs/_js/examples/.eslintrc create mode 100644 examples/ballmer-peak/example.js diff --git a/.eslintignore b/.eslintignore index 47be5b0529..ca6d53b336 100644 --- a/.eslintignore +++ b/.eslintignore @@ -7,5 +7,10 @@ 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 +vendor/ +# But not in docs/_js/examples/* +docs/_js/*.js +docs/js/ +# This should be more like examples/**/thirdparty/** but +# we should fix https://github.com/facebook/esprima/pull/85 first +examples/ \ No newline at end of file diff --git a/docs/_js/examples/.eslintrc b/docs/_js/examples/.eslintrc new file mode 100644 index 0000000000..225d785041 --- /dev/null +++ b/docs/_js/examples/.eslintrc @@ -0,0 +1,3 @@ +rules: + block-scoped-var: false + no-undef: false \ No newline at end of file diff --git a/docs/extractCode.js b/docs/extractCode.js index 1425065a19..867118ebea 100644 --- a/docs/extractCode.js +++ b/docs/extractCode.js @@ -1,3 +1,5 @@ +'use strict'; + var argv = require('optimist').argv; var fs = require('fs'); @@ -5,9 +7,9 @@ var CODE_SAMPLE = /```[\S]+\s*[\s\S]*?```/g; var PARTS = /```[\S]+\s*\/\/\s+(.+?)\n([\s\S]*?)```/; function truncate(s, n) { - n = n || 256 + n = n || 256; if (s.length < n) { - return s; + return s; } return s.substring(0, n) + '...'; } @@ -27,9 +29,9 @@ function main(dest, filenames) { if (!extracted) { throw new Error('Code sample did not match correct format in ' + filename + ': ' + truncate(codeSample)); } - var filename = extracted[1]; - var content = extracted[2].replace(/\*\*/g, ''); - fs.writeFileSync(argv.dest + '/' + filename, content); + var codeSampleFilename = extracted[1]; + var codeSampleContent = extracted[2].replace(/\*\*/g, ''); + fs.writeFileSync(argv.dest + '/' + codeSampleFilename, codeSampleContent); }); }); } diff --git a/examples/ballmer-peak/example.js b/examples/ballmer-peak/example.js new file mode 100644 index 0000000000..3bdcd55223 --- /dev/null +++ b/examples/ballmer-peak/example.js @@ -0,0 +1,42 @@ +'use strict'; + +function computeBallmerPeak(x) { + // see: http://ask.metafilter.com/76859/Make-a-function-of-this-graph-Thats-like-an-antigraph + x = x * 100; + return ( + 1 - 1 / (1 + Math.exp(-(x - 6))) *.5 + Math.exp(-Math.pow(Math.abs(x - 10), 2) * 10) + ) / 1.6; +} + +function percentage(x) { + return isNaN(x) ? 'N/A' : (100 - Math.round(x * 100)) + '%'; +} + +var BallmerPeakCalculator = React.createClass({ + getInitialState: function() { + return {bac: 0}; + }, + handleChange: function(event) { + this.setState({bac: event.target.value}); + }, + render: function() { + var pct = percentage(computeBallmerPeak(this.state.bac)); + return ( +
+ +

Credit due to xkcd.

+

Compute your Ballmer Peak:

+

+ If your BAC is{' '} + + {', '}then {pct} of your lines of code will be bug free. +

+
+ ); + } +}); + +React.render( + , + document.getElementById('container') +); diff --git a/examples/basic-commonjs/index.js b/examples/basic-commonjs/index.js index e9218a8852..271595aeb9 100644 --- a/examples/basic-commonjs/index.js +++ b/examples/basic-commonjs/index.js @@ -1,3 +1,5 @@ +'use strict'; + var React = require('react'); var ExampleApplication = React.createClass({ diff --git a/examples/jquery-bootstrap/js/app.js b/examples/jquery-bootstrap/js/app.js index d64ba0e51a..33b782301e 100644 --- a/examples/jquery-bootstrap/js/app.js +++ b/examples/jquery-bootstrap/js/app.js @@ -1,3 +1,5 @@ +'use strict'; + // Simple pure-React component so we don't have to remember // Bootstrap's classes var BootstrapButton = React.createClass({ diff --git a/examples/server-rendering/jsapp/src/App.js b/examples/server-rendering/jsapp/src/App.js index e44760025d..7a4afcd654 100644 --- a/examples/server-rendering/jsapp/src/App.js +++ b/examples/server-rendering/jsapp/src/App.js @@ -1,3 +1,5 @@ +'use strict'; + var React = require('react'); var App = React.createClass({ diff --git a/examples/server-rendering/reactserver/server.js b/examples/server-rendering/reactserver/server.js index 82962649a1..62e4ba36a7 100644 --- a/examples/server-rendering/reactserver/server.js +++ b/examples/server-rendering/reactserver/server.js @@ -1,3 +1,5 @@ +'use strict'; + var React = require('react'); var express = require('express'); var path = require('path'); @@ -11,9 +13,9 @@ var app = express(); // in the querystring and return a static HTML representation of the component. // Note that this is a backend service hit by your actual web app. Even so, // you would probably put Varnish in front of this in production. -app.get('/', function(req, res){ - var component = require(path.resolve(req.query['module'])); - var props = JSON.parse(req.query['props'] || '{}'); +app.get('/', function(req, res) { + var component = require(path.resolve(req.query.module)); + var props = JSON.parse(req.query.props || '{}'); res.send(React.renderToString(component(props))); }); diff --git a/grunt/tasks/eslint.js b/grunt/tasks/eslint.js index 098039cc07..b2b5690394 100644 --- a/grunt/tasks/eslint.js +++ b/grunt/tasks/eslint.js @@ -6,15 +6,7 @@ module.exports = function() { var done = this.async(); grunt.util.spawn({ cmd: 'node_modules/.bin/eslint', - args: [ - 'src/', - 'Gruntfile.js', - 'grunt/', - 'main.js', - 'perf/', - 'test/', - 'vendor/fbtransform' - ] + args: ['.'] }, function(err, result, code) { if (err) { grunt.log.error('Lint failed'); diff --git a/jest/preprocessor.js b/jest/preprocessor.js index b8451458b7..8f696b33ac 100644 --- a/jest/preprocessor.js +++ b/jest/preprocessor.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var ReactTools = require('../main.js'); diff --git a/jest/ts-preprocessor.js b/jest/ts-preprocessor.js index 7a503c9d85..3dd84c31b7 100644 --- a/jest/ts-preprocessor.js +++ b/jest/ts-preprocessor.js @@ -31,9 +31,15 @@ function compile(defaultLib, content, contentFilename) { throw new Error('Expected only one dependency.'); } }, - getCanonicalFileName: function(filename) { return filename; }, - getCurrentDirectory: function() { return ''; }, - getNewLine: function() { return '\n'; } + getCanonicalFileName: function(filename) { + return filename; + }, + getCurrentDirectory: function() { + return ''; + }, + getNewLine: function() { + return '\n'; + } }; var program = ts.createProgram([contentFilename], tsOptions, compilerHost); var errors = program.getDiagnostics(); diff --git a/npm-jsx_orphaned_brackets_transformer/run.js b/npm-jsx_orphaned_brackets_transformer/run.js index 160ef0440f..82df88e19a 100644 --- a/npm-jsx_orphaned_brackets_transformer/run.js +++ b/npm-jsx_orphaned_brackets_transformer/run.js @@ -1,12 +1,14 @@ #!/usr/bin/env node +'use strict'; + var esprima = require('esprima-fb'); var FileFinder = require('node-find-files'); var fs = require('graceful-fs'); var jstransform = require('jstransform'); var path = require('path'); var visitReactTag = require('./transforms/react').visitReactTag; - +/*eslint-disable no-shadow*/ var S = esprima.Syntax; var USAGE = @@ -143,7 +145,9 @@ if (require.main === module) { var absPath = path.resolve(arg); fs.stat(absPath, function(err, stat) { - if (err) throw err; + if (err) { + throw err; + } if (stat.isFile()) { transformFile(absPath); diff --git a/npm-jsx_orphaned_brackets_transformer/transforms/react.js b/npm-jsx_orphaned_brackets_transformer/transforms/react.js index 10f28386d2..3647e01131 100644 --- a/npm-jsx_orphaned_brackets_transformer/transforms/react.js +++ b/npm-jsx_orphaned_brackets_transformer/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('esprima-fb').Syntax; var utils = require('jstransform/src/utils');