From 5f8aad731fa94d04638a128878ef7ff12bb0f6e3 Mon Sep 17 00:00:00 2001 From: azu Date: Mon, 14 Sep 2015 23:18:04 +0900 Subject: [PATCH 1/5] no use `var` close #45 From f6135abc2dd992324fa83403835367b42c2a4d85 Mon Sep 17 00:00:00 2001 From: azu Date: Mon, 14 Sep 2015 23:22:24 +0900 Subject: [PATCH 2/5] feat(eslint): add "no-var" rule --- .eslintrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index 247e5f0..261b411 100644 --- a/.eslintrc +++ b/.eslintrc @@ -16,7 +16,8 @@ 2, "always" ], - "no-console": 0 + "no-console": 0, + "no-var": 2 }, "env": { "es6": true, From bcb91aeaf1a6ea69a0ac4a29f811f350ca25d457 Mon Sep 17 00:00:00 2001 From: azu Date: Mon, 14 Sep 2015 23:23:03 +0900 Subject: [PATCH 3/5] refactor: apply "no-var" rule to source code --- ja/ESLint/README.md | 10 +++++----- src/ESLint/MyLinter-example.js | 4 ++-- src/ESLint/MyLinter.js | 8 ++++---- src/connect/connect-echo-example.js | 8 ++++---- src/connect/connect-example.js | 6 +++--- src/jQuery/calculator-example.js | 2 +- test/ESLint/MyLinter-test.js | 2 +- test/connect/hello-test.js | 14 +++++++------- test/jQuery/greenify-test.js | 2 +- 9 files changed, 28 insertions(+), 28 deletions(-) diff --git a/ja/ESLint/README.md b/ja/ESLint/README.md index 25d7f58..9afe023 100644 --- a/ja/ESLint/README.md +++ b/ja/ESLint/README.md @@ -148,22 +148,22 @@ import {EventEmitter} from "events"; function lint(code){ // コードをパースしてASTにする - var ast = parse(code); + let ast = parse(code); // イベントの登録場所 - var emitter = new EventEmitter(); - var results = []; + let emitter = new EventEmitter(); + let results = []; emitter.on("report", message => { // 3. のためのreportされた内容を集める results.push(message); }); // 利用するルール一覧 - var ruleList = getAllRules(); + let ruleList = getAllRules(); // 1. ルール毎に使っている`Node.type`をイベント登録する ruleList.forEach(rule => { // それぞれのルールに定義されているメソッド一覧を取得 // e.g) MemberExpression(node){} // => {"MemberExpression" : function(node){}, ... } というオブジェクト - var methodObject = getDefinedMethod(rule); + let methodObject = getDefinedMethod(rule); Object.keys(methodObject).forEach(nodeType => { emitter.on(nodeType, methodList[nodeType]); }); diff --git a/src/ESLint/MyLinter-example.js b/src/ESLint/MyLinter-example.js index 42754e5..27419f9 100644 --- a/src/ESLint/MyLinter-example.js +++ b/src/ESLint/MyLinter-example.js @@ -5,13 +5,13 @@ import noConsole from "./no-console"; let linter = new MyLinter(); linter.loadRule(noConsole); -var code = ` +let code = ` function add(x, y){ console.log(x, y); return x + y; } add(1, 3); `; -var results = linter.lint(code); +let results = linter.lint(code); assert(results.length > 0); assert.equal(results[0], "Unexpected console statement."); \ No newline at end of file diff --git a/src/ESLint/MyLinter.js b/src/ESLint/MyLinter.js index 92587a8..46ba983 100644 --- a/src/ESLint/MyLinter.js +++ b/src/ESLint/MyLinter.js @@ -14,7 +14,7 @@ export default class MyLinter { } loadRule(rule) { - var ruleExports = rule(this._ruleContext); + let ruleExports = rule(this._ruleContext); // on(nodeType, nodeTypeCallback); Object.keys(ruleExports).forEach(nodeType => { this._emitter.on(nodeType, ruleExports[nodeType]); @@ -23,12 +23,12 @@ export default class MyLinter { lint(code) { - var messages = []; - var addMessage = (message)=> { + let messages = []; + let addMessage = (message)=> { messages.push(message); }; this._ruleContext.on("report", addMessage); - var ast = parse(code); + let ast = parse(code); traverse(ast, { enter: (node) => { this._emitter.emit(node.type, node); diff --git a/src/connect/connect-echo-example.js b/src/connect/connect-echo-example.js index 5daabc5..f35c077 100644 --- a/src/connect/connect-echo-example.js +++ b/src/connect/connect-echo-example.js @@ -3,7 +3,7 @@ import connect from "connect"; import http from "http"; import fetch from "node-fetch"; import assert from "assert"; -var app = connect(); +let app = connect(); // add Error handling app.use(function (err, req, res, next) { console.error(err.stack); @@ -15,12 +15,12 @@ app.use(function (req, res) { req.pipe(res); }); //create node.js http server and listen on port -var server = http.createServer(app).listen(3000, request); +let server = http.createServer(app).listen(3000, request); // request => response function request() { - var closeServer = server.close.bind(server); - var requestBody = { + let closeServer = server.close.bind(server); + let requestBody = { "key": "value" }; fetch("http://localhost:3000", { diff --git a/src/connect/connect-example.js b/src/connect/connect-example.js index 604933e..2ed667e 100644 --- a/src/connect/connect-example.js +++ b/src/connect/connect-example.js @@ -7,7 +7,7 @@ import connect from "connect"; import http from "http"; import fetch from "node-fetch"; const responseText = "response text"; -var app = connect(); +let app = connect(); // add Error handling app.use(errorHandler()); // add "X-Content-Type-Options" to response @@ -15,10 +15,10 @@ app.use(nosniff()); // respond to all requests app.use(hello(responseText)); //create node.js http server and listen on port -var server = http.createServer(app).listen(3000, request); +let server = http.createServer(app).listen(3000, request); function request() { - var closeServer = server.close.bind(server); + let closeServer = server.close.bind(server); fetch("http://localhost:3000") .then(res => res.text()) .then(text => { diff --git a/src/jQuery/calculator-example.js b/src/jQuery/calculator-example.js index 8108eee..b567aa6 100644 --- a/src/jQuery/calculator-example.js +++ b/src/jQuery/calculator-example.js @@ -3,5 +3,5 @@ import assert from "assert"; import calculator from "./calculator"; import "./calculator-plugin"; // Extend -var resultValue = calculator(0).add(10).multi(10).value; +let resultValue = calculator(0).add(10).multi(10).value; assert.equal(resultValue, 10 * 10); \ No newline at end of file diff --git a/test/ESLint/MyLinter-test.js b/test/ESLint/MyLinter-test.js index 0adee75..bae455d 100644 --- a/test/ESLint/MyLinter-test.js +++ b/test/ESLint/MyLinter-test.js @@ -7,7 +7,7 @@ describe("MyLint", function () { it("should load and lint", function () { let linter = new MyLinter(); linter.loadRule(noConsole); - var results = linter.lint(`console.log("test")`); + let results = linter.lint(`console.log("test")`); assert(results.length > 0); assert.equal(results[0], "Unexpected console statement."); }); diff --git a/test/connect/hello-test.js b/test/connect/hello-test.js index 3d3b465..21dd19f 100644 --- a/test/connect/hello-test.js +++ b/test/connect/hello-test.js @@ -9,11 +9,11 @@ import echo from "../../src/connect/echo"; import http from "http"; import fetch from "node-fetch"; describe("connect", function () { - var responseText = "test"; - var server; + let responseText = "test"; + let server; describe("errorHandler", function () { beforeEach(function (done) { - var app = connect(); + let app = connect(); app.use(errorHandler()); app.use((req, res, next) => { next(new Error("wrong")); @@ -34,7 +34,7 @@ describe("connect", function () { }); describe("hello", function () { beforeEach(function (done) { - var app = connect(); + let app = connect(); app.use(errorHandler()); app.use(hello(responseText)); server = http.createServer(app).listen(3000, done); @@ -52,7 +52,7 @@ describe("connect", function () { }); describe("sniff", function () { beforeEach(function (done) { - var app = connect(); + let app = connect(); app.use(nosniff()); app.use(hello(responseText)); server = http.createServer(app).listen(3000, done); @@ -69,7 +69,7 @@ describe("connect", function () { }); describe("echo", function () { beforeEach(function (done) { - var app = connect(); + let app = connect(); app.use(echo()); server = http.createServer(app).listen(3000, done); }); @@ -77,7 +77,7 @@ describe("connect", function () { server && server.close(); }); it("should return request as response", function () { - var requestBody = { + let requestBody = { key: "value" }; return fetch("http://localhost:3000", { diff --git a/test/jQuery/greenify-test.js b/test/jQuery/greenify-test.js index 316de3d..2bc95cb 100644 --- a/test/jQuery/greenify-test.js +++ b/test/jQuery/greenify-test.js @@ -7,7 +7,7 @@ const testbed = fs.readFileSync(__dirname + "/fixtures/testbed.html", "utf-8"); const jquery = fs.readFileSync(__dirname + "/../../node_modules/jquery/dist/jquery.js", "utf-8"); const greenify = fs.readFileSync(__dirname + "/../../src/jQuery/greenify.js", "utf-8"); describe("greenify", function () { - var $, document; + let $, document; before(done => { jsdom.env({ html: testbed, From fb72cb83e3d08bba1c0e18cb507c1e374fc5c24a Mon Sep 17 00:00:00 2001 From: azu Date: Mon, 14 Sep 2015 23:32:03 +0900 Subject: [PATCH 4/5] refactor;: use const for static value --- src/connect/connect-echo-example.js | 2 +- test/connect/hello-test.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connect/connect-echo-example.js b/src/connect/connect-echo-example.js index f35c077..b6f3edd 100644 --- a/src/connect/connect-echo-example.js +++ b/src/connect/connect-echo-example.js @@ -20,7 +20,7 @@ let server = http.createServer(app).listen(3000, request); // request => response function request() { let closeServer = server.close.bind(server); - let requestBody = { + const requestBody = { "key": "value" }; fetch("http://localhost:3000", { diff --git a/test/connect/hello-test.js b/test/connect/hello-test.js index 21dd19f..94ca144 100644 --- a/test/connect/hello-test.js +++ b/test/connect/hello-test.js @@ -9,7 +9,7 @@ import echo from "../../src/connect/echo"; import http from "http"; import fetch from "node-fetch"; describe("connect", function () { - let responseText = "test"; + const responseText = "test"; let server; describe("errorHandler", function () { beforeEach(function (done) { From b13b8f2dc198d64c8eb64e45e5564e8e1c07a850 Mon Sep 17 00:00:00 2001 From: azu Date: Mon, 14 Sep 2015 23:43:55 +0900 Subject: [PATCH 5/5] refactor;: use const for static value --- src/ESLint/MyLinter-example.js | 2 +- test/connect/hello-test.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ESLint/MyLinter-example.js b/src/ESLint/MyLinter-example.js index 27419f9..6124834 100644 --- a/src/ESLint/MyLinter-example.js +++ b/src/ESLint/MyLinter-example.js @@ -5,7 +5,7 @@ import noConsole from "./no-console"; let linter = new MyLinter(); linter.loadRule(noConsole); -let code = ` +const code = ` function add(x, y){ console.log(x, y); return x + y; diff --git a/test/connect/hello-test.js b/test/connect/hello-test.js index 94ca144..ef25e72 100644 --- a/test/connect/hello-test.js +++ b/test/connect/hello-test.js @@ -77,9 +77,9 @@ describe("connect", function () { server && server.close(); }); it("should return request as response", function () { - let requestBody = { + const requestBody = Object.freeze({ key: "value" - }; + }); return fetch("http://localhost:3000", { method: "POST", headers: {