From 379def63c8d51516b99344bd5a780281853a6808 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Thu, 25 Apr 2019 17:14:46 +0200 Subject: [PATCH] [lint] enable no-var rule --- .eslintrc.yaml | 1 + bench/speed.js | 10 +++--- examples/fileapi/public/app.js | 47 ++++++++++++++++------------- examples/fileapi/public/uploader.js | 15 ++++----- examples/fileapi/server.js | 46 ++++++++++++++-------------- examples/serverstats/server.js | 14 ++++----- lib/buffer-util.js | 10 +++--- lib/event-target.js | 2 +- lib/extension.js | 27 +++++++++-------- lib/permessage-deflate.js | 4 +-- lib/receiver.js | 6 ++-- lib/sender.js | 10 +++--- lib/websocket-server.js | 2 +- lib/websocket.js | 12 ++++---- 14 files changed, 107 insertions(+), 99 deletions(-) diff --git a/.eslintrc.yaml b/.eslintrc.yaml index d370e3d2e..4942593ff 100644 --- a/.eslintrc.yaml +++ b/.eslintrc.yaml @@ -12,5 +12,6 @@ plugins: - prettier rules: no-console: off + no-var: error prefer-const: error prettier/prettier: error diff --git a/bench/speed.js b/bench/speed.js index c87dc0b78..32ec0fb81 100644 --- a/bench/speed.js +++ b/bench/speed.js @@ -60,7 +60,7 @@ if (cluster.isMaster) { console.log('Generating %s of test data...', humanSize(largest)); const randomBytes = Buffer.allocUnsafe(largest); - for (var i = 0; i < largest; ++i) { + for (let i = 0; i < largest; ++i) { randomBytes[i] = ~~(Math.random() * 127); } @@ -72,8 +72,8 @@ if (cluster.isMaster) { const ws = new WebSocket(url, { maxPayload: 600 * 1024 * 1024 }); - var roundtrip = 0; - var time; + let roundtrip = 0; + let time; ws.on('error', (err) => { console.error(err.stack); @@ -87,7 +87,7 @@ if (cluster.isMaster) { if (++roundtrip !== roundtrips) return ws.send(data, { binary: useBinary }); - var elapsed = process.hrtime(time); + let elapsed = process.hrtime(time); elapsed = elapsed[0] * 1e9 + elapsed[1]; console.log( @@ -106,7 +106,7 @@ if (cluster.isMaster) { (function run() { if (configs.length === 0) return cluster.worker.disconnect(); - var config = configs.shift(); + const config = configs.shift(); config.push(run); runConfig.apply(null, config); })(); diff --git a/examples/fileapi/public/app.js b/examples/fileapi/public/app.js index 80300db52..73b3cb41a 100644 --- a/examples/fileapi/public/app.js +++ b/examples/fileapi/public/app.js @@ -1,31 +1,36 @@ /* global Uploader */ function onFilesSelected(e) { - var button = e.srcElement; + const files = e.target.files; + let totalFiles = files.length; + + if (!totalFiles) return; + + const button = e.srcElement; button.disabled = true; - var progress = document.querySelector('div#progress'); + + const progress = document.querySelector('div#progress'); progress.innerHTML = '0%'; - var files = e.target.files; - var totalFiles = files.length; - var filesSent = 0; - if (totalFiles) { - var uploader = new Uploader('ws://localhost:8080', function() { - Array.prototype.slice.call(files, 0).forEach(function(file) { - if (file.name === '.') { - --totalFiles; + + let filesSent = 0; + + const uploader = new Uploader('ws://localhost:8080', function() { + Array.prototype.slice.call(files, 0).forEach(function(file) { + if (file.name === '.') { + --totalFiles; + return; + } + uploader.sendFile(file, function(error) { + if (error) { + console.log(error); return; } - uploader.sendFile(file, function(error) { - if (error) { - console.log(error); - return; - } - ++filesSent; - progress.innerHTML = ~~((filesSent / totalFiles) * 100) + '%'; - console.log('Sent: ' + file.name); - }); + ++filesSent; + progress.innerHTML = ~~((filesSent / totalFiles) * 100) + '%'; + console.log('Sent: ' + file.name); }); }); - } + }); + uploader.ondone = function() { uploader.close(); progress.innerHTML = '100% done, ' + totalFiles + ' files sent.'; @@ -33,7 +38,7 @@ function onFilesSelected(e) { } window.onload = function() { - var importButtons = document.querySelectorAll('[type="file"]'); + const importButtons = document.querySelectorAll('[type="file"]'); Array.prototype.slice.call(importButtons, 0).forEach(function(importButton) { importButton.addEventListener('change', onFilesSelected, false); }); diff --git a/examples/fileapi/public/uploader.js b/examples/fileapi/public/uploader.js index 11332d43c..f5dbd8d18 100644 --- a/examples/fileapi/public/uploader.js +++ b/examples/fileapi/public/uploader.js @@ -1,4 +1,3 @@ -/* global WebSocket */ function Uploader(url, cb) { this.ws = new WebSocket(url); if (cb) this.ws.onopen = cb; @@ -6,10 +5,10 @@ function Uploader(url, cb) { this.sending = null; this.sendCallback = null; this.ondone = null; - var self = this; + const self = this; this.ws.onmessage = function(event) { - var data = JSON.parse(event.data); - var callback; + const data = JSON.parse(event.data); + let callback; if (data.event === 'complete') { if (data.path !== self.sending.path) { self.sendQueue = []; @@ -23,7 +22,7 @@ function Uploader(url, cb) { if (callback) callback(); if (self.sendQueue.length === 0 && self.ondone) self.ondone(null); if (self.sendQueue.length > 0) { - var args = self.sendQueue.pop(); + const args = self.sendQueue.pop(); setTimeout(function() { self.sendFile.apply(self, args); }, 0); @@ -33,7 +32,9 @@ function Uploader(url, cb) { self.sending = null; callback = self.sendCallback; self.sendCallback = null; - var error = new Error('Server reported send error for file ' + data.path); + const error = new Error( + 'Server reported send error for file ' + data.path + ); if (callback) callback(error); if (self.ondone) self.ondone(error); } @@ -46,7 +47,7 @@ Uploader.prototype.sendFile = function(file, cb) { this.sendQueue.push(arguments); return; } - var fileData = { name: file.name, path: file.webkitRelativePath }; + const fileData = { name: file.name, path: file.webkitRelativePath }; this.sending = fileData; this.sendCallback = cb; this.ws.send(JSON.stringify(fileData)); diff --git a/examples/fileapi/server.js b/examples/fileapi/server.js index 4bb1b61e6..c90f04c0b 100644 --- a/examples/fileapi/server.js +++ b/examples/fileapi/server.js @@ -1,21 +1,21 @@ -var WebSocketServer = require('../../').Server; -var express = require('express'); -var fs = require('fs'); -var util = require('util'); -var path = require('path'); -var app = express(); -var server = require('http').Server(app); -var events = require('events'); -var ansi = require('ansi'); -var cursor = ansi(process.stdout); +const WebSocketServer = require('../../').Server; +const express = require('express'); +const fs = require('fs'); +const util = require('util'); +const path = require('path'); +const app = express(); +const server = require('http').Server(app); +const events = require('events'); +const ansi = require('ansi'); +const cursor = ansi(process.stdout); function BandwidthSampler(ws, interval) { interval = interval || 2000; - var previousByteCount = 0; - var self = this; - var intervalId = setInterval(function() { - var byteCount = ws.bytesReceived; - var bytesPerSec = (byteCount - previousByteCount) / (interval / 1000); + let previousByteCount = 0; + const self = this; + const intervalId = setInterval(function() { + const byteCount = ws.bytesReceived; + const bytesPerSec = (byteCount - previousByteCount) / (interval / 1000); previousByteCount = byteCount; self.emit('sample', bytesPerSec); }, interval); @@ -28,8 +28,8 @@ util.inherits(BandwidthSampler, events.EventEmitter); function makePathForFile(filePath, prefix, cb) { if (typeof cb !== 'function') throw new Error('callback is required'); filePath = path.dirname(path.normalize(filePath)).replace(/^(\/|\\)+/, ''); - var pieces = filePath.split(/(\\|\/)/); - var incrementalPath = prefix; + const pieces = filePath.split(/(\\|\/)/); + let incrementalPath = prefix; function step(error) { if (error) return cb(error); if (pieces.length === 0) return cb(null, incrementalPath); @@ -45,14 +45,14 @@ function makePathForFile(filePath, prefix, cb) { cursor.eraseData(2).goto(1, 1); app.use(express.static(path.join(__dirname, '/public'))); -var clientId = 0; -var wss = new WebSocketServer({ server: server }); +let clientId = 0; +const wss = new WebSocketServer({ server: server }); wss.on('connection', function(ws) { - var thisId = ++clientId; + const thisId = ++clientId; cursor.goto(1, 4 + thisId).eraseLine(); console.log('Client #%d connected', thisId); - var sampler = new BandwidthSampler(ws); + const sampler = new BandwidthSampler(ws); sampler.on('sample', function(bps) { cursor.goto(1, 4 + thisId).eraseLine(); console.log( @@ -62,8 +62,8 @@ wss.on('connection', function(ws) { ); }); - var filesReceived = 0; - var currentFile = null; + let filesReceived = 0; + let currentFile = null; ws.on('message', function(data) { if (typeof data === 'string') { currentFile = JSON.parse(data); diff --git a/examples/serverstats/server.js b/examples/serverstats/server.js index 7f7f23c0f..5028dc182 100644 --- a/examples/serverstats/server.js +++ b/examples/serverstats/server.js @@ -1,14 +1,14 @@ -var WebSocketServer = require('../../').Server; -var express = require('express'); -var path = require('path'); -var app = express(); -var server = require('http').createServer(); +const WebSocketServer = require('../../').Server; +const express = require('express'); +const path = require('path'); +const app = express(); +const server = require('http').createServer(); app.use(express.static(path.join(__dirname, '/public'))); -var wss = new WebSocketServer({ server: server }); +const wss = new WebSocketServer({ server: server }); wss.on('connection', function(ws) { - var id = setInterval(function() { + const id = setInterval(function() { ws.send(JSON.stringify(process.memoryUsage()), function() { /* ignore errors */ }); diff --git a/lib/buffer-util.js b/lib/buffer-util.js index 8fcb88f4a..02973ae39 100644 --- a/lib/buffer-util.js +++ b/lib/buffer-util.js @@ -15,9 +15,9 @@ function concat(list, totalLength) { if (list.length === 1) return list[0]; const target = Buffer.allocUnsafe(totalLength); - var offset = 0; + let offset = 0; - for (var i = 0; i < list.length; i++) { + for (let i = 0; i < list.length; i++) { const buf = list[i]; buf.copy(target, offset); offset += buf.length; @@ -37,7 +37,7 @@ function concat(list, totalLength) { * @public */ function _mask(source, mask, output, offset, length) { - for (var i = 0; i < length; i++) { + for (let i = 0; i < length; i++) { output[offset + i] = source[i] ^ mask[i & 3]; } } @@ -52,7 +52,7 @@ function _mask(source, mask, output, offset, length) { function _unmask(buffer, mask) { // Required until https://github.com/nodejs/node/issues/9006 is resolved. const length = buffer.length; - for (var i = 0; i < length; i++) { + for (let i = 0; i < length; i++) { buffer[i] ^= mask[i & 3]; } } @@ -85,7 +85,7 @@ function toBuffer(data) { if (Buffer.isBuffer(data)) return data; - var buf; + let buf; if (data instanceof ArrayBuffer) { buf = Buffer.from(data); diff --git a/lib/event-target.js b/lib/event-target.js index 44c81d991..c060d63a8 100644 --- a/lib/event-target.js +++ b/lib/event-target.js @@ -159,7 +159,7 @@ const EventTarget = { removeEventListener(method, listener) { const listeners = this.listeners(method); - for (var i = 0; i < listeners.length; i++) { + for (let i = 0; i < listeners.length; i++) { if (listeners[i] === listener || listeners[i]._listener === listener) { this.removeListener(method, listeners[i]); } diff --git a/lib/extension.js b/lib/extension.js index 47096b973..fd250726f 100644 --- a/lib/extension.js +++ b/lib/extension.js @@ -50,16 +50,17 @@ function parse(header) { if (header === undefined || header === '') return offers; - var params = {}; - var mustUnescape = false; - var isEscaping = false; - var inQuotes = false; - var extensionName; - var paramName; - var start = -1; - var end = -1; - - for (var i = 0; i < header.length; i++) { + let params = {}; + let mustUnescape = false; + let isEscaping = false; + let inQuotes = false; + let extensionName; + let paramName; + let start = -1; + let end = -1; + let i = 0; + + for (; i < header.length; i++) { const code = header.charCodeAt(i); if (extensionName === undefined) { @@ -146,7 +147,7 @@ function parse(header) { } if (end === -1) end = i; - var value = header.slice(start, end); + let value = header.slice(start, end); if (mustUnescape) { value = value.replace(/\\/g, ''); mustUnescape = false; @@ -198,14 +199,14 @@ function parse(header) { function format(extensions) { return Object.keys(extensions) .map((extension) => { - var configurations = extensions[extension]; + let configurations = extensions[extension]; if (!Array.isArray(configurations)) configurations = [configurations]; return configurations .map((params) => { return [extension] .concat( Object.keys(params).map((k) => { - var values = params[k]; + let values = params[k]; if (!Array.isArray(values)) values = [values]; return values .map((v) => (v === true ? k : `${k}=${v}`)) diff --git a/lib/permessage-deflate.js b/lib/permessage-deflate.js index 8501492b9..29881b313 100644 --- a/lib/permessage-deflate.js +++ b/lib/permessage-deflate.js @@ -233,7 +233,7 @@ class PerMessageDeflate { normalizeParams(configurations) { configurations.forEach((params) => { Object.keys(params).forEach((key) => { - var value = params[key]; + let value = params[key]; if (value.length > 1) { throw new Error(`Parameter "${key}" must have only a single value`); @@ -431,7 +431,7 @@ class PerMessageDeflate { return; } - var data = bufferUtil.concat( + let data = bufferUtil.concat( this._deflate[kBuffers], this._deflate[kTotalLength] ); diff --git a/lib/receiver.js b/lib/receiver.js index 0a8d76df7..28ffca0f5 100644 --- a/lib/receiver.js +++ b/lib/receiver.js @@ -117,7 +117,7 @@ class Receiver extends Writable { * @private */ startLoop(cb) { - var err; + let err; this._loop = true; do { @@ -320,7 +320,7 @@ class Receiver extends Writable { * @private */ getData(cb) { - var data = EMPTY_BUFFER; + let data = EMPTY_BUFFER; if (this._payloadLength) { if (this._bufferedBytes < this._payloadLength) { @@ -400,7 +400,7 @@ class Receiver extends Writable { this._fragments = []; if (this._opcode === 2) { - var data; + let data; if (this._binaryType === 'nodebuffer') { data = concat(fragments, messageLength); diff --git a/lib/sender.js b/lib/sender.js index c2dbfe2e9..088cc2a7a 100644 --- a/lib/sender.js +++ b/lib/sender.js @@ -44,8 +44,8 @@ class Sender { */ static frame(data, options) { const merge = options.mask && options.readOnly; - var offset = options.mask ? 6 : 2; - var payloadLength = data.length; + let offset = options.mask ? 6 : 2; + let payloadLength = data.length; if (data.length >= 65536) { offset += 8; @@ -98,7 +98,7 @@ class Sender { * @public */ close(code, data, mask, cb) { - var buf; + let buf; if (code === undefined) { buf = EMPTY_BUFFER; @@ -236,8 +236,8 @@ class Sender { send(data, options, cb) { const buf = toBuffer(data); const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; - var opcode = options.binary ? 2 : 1; - var rsv1 = options.compress; + let opcode = options.binary ? 2 : 1; + let rsv1 = options.compress; if (this._firstFragment) { this._firstFragment = false; diff --git a/lib/websocket-server.js b/lib/websocket-server.js index bc9aa1e8a..6835a21ed 100644 --- a/lib/websocket-server.js +++ b/lib/websocket-server.js @@ -274,7 +274,7 @@ class WebSocketServer extends EventEmitter { ]; const ws = new WebSocket(null); - var protocol = req.headers['sec-websocket-protocol']; + let protocol = req.headers['sec-websocket-protocol']; if (protocol) { protocol = protocol.trim().split(/ *, */); diff --git a/lib/websocket.js b/lib/websocket.js index 4bab8fdba..070b3a0eb 100644 --- a/lib/websocket.js +++ b/lib/websocket.js @@ -391,7 +391,7 @@ readyStates.forEach((readyState, i) => { */ get() { const listeners = this.listeners(method); - for (var i = 0; i < listeners.length; i++) { + for (let i = 0; i < listeners.length; i++) { if (listeners[i]._listener) return listeners[i]._listener; } @@ -405,7 +405,7 @@ readyStates.forEach((readyState, i) => { */ set(listener) { const listeners = this.listeners(method); - for (var i = 0; i < listeners.length; i++) { + for (let i = 0; i < listeners.length; i++) { // // Remove only the listeners added via `addEventListener`. // @@ -468,7 +468,7 @@ function initAsClient(websocket, address, protocols, options) { ); } - var parsedUrl; + let parsedUrl; if (address instanceof URL) { parsedUrl = address; @@ -489,7 +489,7 @@ function initAsClient(websocket, address, protocols, options) { const defaultPort = isSecure ? 443 : 80; const key = randomBytes(16).toString('base64'); const get = isSecure ? https.get : http.get; - var perMessageDeflate; + let perMessageDeflate; opts.createConnection = isSecure ? tlsConnect : netConnect; opts.defaultPort = opts.defaultPort || defaultPort; @@ -538,7 +538,7 @@ function initAsClient(websocket, address, protocols, options) { opts.path = parts[1]; } - var req = (websocket._req = get(opts)); + let req = (websocket._req = get(opts)); if (opts.timeout) { req.on('timeout', () => { @@ -606,7 +606,7 @@ function initAsClient(websocket, address, protocols, options) { const serverProt = res.headers['sec-websocket-protocol']; const protList = (protocols || '').split(/, */); - var protError; + let protError; if (!protocols && serverProt) { protError = 'Server sent a subprotocol but none was requested';