Skip to content

Commit

Permalink
chore: add lint rule one-var:never (#392)
Browse files Browse the repository at this point in the history
* chore: add lint rule one-var:never

* chore: apply one-var

* chore: run prettier
  • Loading branch information
Shinigami authored and thedaviddias committed May 18, 2020
1 parent 9fddad0 commit 771376d
Show file tree
Hide file tree
Showing 23 changed files with 140 additions and 136 deletions.
3 changes: 3 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,7 @@ module.exports = {
ecmaVersion: 6,
sourceType: 'module',
},
rules: {
'one-var': ['error', 'never'],
},
}
4 changes: 2 additions & 2 deletions src/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ class HTMLHintCore {
var parser = new HTMLParser()
var reporter = new Reporter(html, ruleset)

var rules = this.rules,
rule
var rules = this.rules
var rule

for (var id in ruleset) {
rule = rules[id]
Expand Down
88 changes: 44 additions & 44 deletions src/htmlparser.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ class HTMLParser {
}

makeMap(str) {
var obj = {},
items = str.split(',')
var obj = {}
var items = str.split(',')

for (var i = 0; i < items.length; i++) {
obj[items[i]] = true
Expand All @@ -18,27 +18,27 @@ class HTMLParser {
}

parse(html) {
var self = this,
mapCdataTags = self._mapCdataTags
var self = this
var mapCdataTags = self._mapCdataTags

// eslint-disable-next-line
var regTag = /<(?:\/([^\s>]+)\s*|!--([\s\S]*?)--|!([^>]*?)|([\w\-:]+)((?:\s+[^\s"'>\/=\x00-\x0F\x7F\x80-\x9F]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s"'>]*))?)*?)\s*(\/?))>/g,
// eslint-disable-next-line
regAttr = /\s*([^\s"'>\/=\x00-\x0F\x7F\x80-\x9F]+)(?:\s*=\s*(?:(")([^"]*)"|(')([^']*)'|([^\s"'>]*)))?/g,
regLine = /\r?\n/g

var match,
matchIndex,
lastIndex = 0,
tagName,
arrAttrs,
tagCDATA,
attrsCDATA,
arrCDATA,
lastCDATAIndex = 0,
text
var lastLineIndex = 0,
line = 1
var match
var matchIndex
var lastIndex = 0
var tagName
var arrAttrs
var tagCDATA
var attrsCDATA
var arrCDATA
var lastCDATAIndex = 0
var text
var lastLineIndex = 0
var line = 1
var arrBlocks = self._arrBlocks

self.fire('start', {
Expand Down Expand Up @@ -110,24 +110,24 @@ class HTMLParser {
if ((tagName = match[4])) {
// Label start
arrAttrs = []
var attrs = match[5],
attrMatch,
attrMatchCount = 0
var attrs = match[5]
var attrMatch
var attrMatchCount = 0

while ((attrMatch = regAttr.exec(attrs))) {
var name = attrMatch[1],
quote = attrMatch[2]
? attrMatch[2]
: attrMatch[4]
? attrMatch[4]
: '',
value = attrMatch[3]
? attrMatch[3]
: attrMatch[5]
? attrMatch[5]
: attrMatch[6]
? attrMatch[6]
: ''
var name = attrMatch[1]
var quote = attrMatch[2]
? attrMatch[2]
: attrMatch[4]
? attrMatch[4]
: ''
var value = attrMatch[3]
? attrMatch[3]
: attrMatch[5]
? attrMatch[5]
: attrMatch[6]
? attrMatch[6]
: ''

arrAttrs.push({
name: name,
Expand Down Expand Up @@ -181,8 +181,8 @@ class HTMLParser {

addListener(types, listener) {
var _listeners = this._listeners
var arrTypes = types.split(/[,\s]/),
type
var arrTypes = types.split(/[,\s]/)
var type

for (var i = 0, l = arrTypes.length; i < l; i++) {
type = arrTypes[i]
Expand All @@ -198,10 +198,10 @@ class HTMLParser {
data = {}
}
data.type = type
var self = this,
listeners = [],
listenersType = self._listeners[type],
listenersAll = self._listeners['all']
var self = this
var listeners = []
var listenersType = self._listeners[type]
var listenersAll = self._listeners['all']

if (listenersType !== undefined) {
listeners = listeners.concat(listenersType)
Expand Down Expand Up @@ -237,10 +237,10 @@ class HTMLParser {

fixPos(event, index) {
var text = event.raw.substr(0, index)
var arrLines = text.split(/\r?\n/),
lineCount = arrLines.length - 1,
line = event.line,
col
var arrLines = text.split(/\r?\n/)
var lineCount = arrLines.length - 1
var line = event.line
var col

if (lineCount > 0) {
line += lineCount
Expand All @@ -256,8 +256,8 @@ class HTMLParser {
}

getMapAttrs(arrAttrs) {
var mapAttrs = {},
attr
var mapAttrs = {}
var attr

for (var i = 0, l = arrAttrs.length; i < l; i++) {
attr = arrAttrs[i]
Expand Down
3 changes: 2 additions & 1 deletion src/reporter.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ class Reporter {
var self = this
var lines = self.lines
var brLen = self.brLen
var evidence, evidenceLen
var evidence
var evidenceLen

for (var i = line - 1, lineCount = lines.length; i < lineCount; i++) {
evidence = lines[i]
Expand Down
8 changes: 4 additions & 4 deletions src/rules/alt-require.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ export default {
init: function (parser, reporter) {
var self = this
parser.addListener('tagstart', function (event) {
var tagName = event.tagName.toLowerCase(),
mapAttrs = parser.getMapAttrs(event.attrs),
col = event.col + tagName.length + 1,
selector
var tagName = event.tagName.toLowerCase()
var mapAttrs = parser.getMapAttrs(event.attrs)
var col = event.col + tagName.length + 1
var selector

if (tagName === 'img' && !('alt' in mapAttrs)) {
reporter.warn(
Expand Down
6 changes: 3 additions & 3 deletions src/rules/attr-lowercase.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ export default {
var exceptions = Array.isArray(options) ? options : []

parser.addListener('tagstart', function (event) {
var attrs = event.attrs,
attr,
col = event.col + event.tagName.length + 1
var attrs = event.attrs
var attr
var col = event.col + event.tagName.length + 1

for (var i = 0, l = attrs.length; i < l; i++) {
attr = attrs[i]
Expand Down
4 changes: 2 additions & 2 deletions src/rules/attr-no-unnecessary-whitespace.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ export default {
var exceptions = Array.isArray(options) ? options : []

parser.addListener('tagstart', function (event) {
var attrs = event.attrs,
col = event.col + event.tagName.length + 1
var attrs = event.attrs
var col = event.col + event.tagName.length + 1

for (var i = 0; i < attrs.length; i++) {
if (
Expand Down
6 changes: 3 additions & 3 deletions src/rules/attr-unsafe-chars.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ export default {
var self = this

parser.addListener('tagstart', function (event) {
var attrs = event.attrs,
attr,
col = event.col + event.tagName.length + 1
var attrs = event.attrs
var attr
var col = event.col + event.tagName.length + 1
// exclude \x09(\t), \x0a(\r), \x0d(\n)
// eslint-disable-next-line
var regUnsafe = /[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/
Expand Down
6 changes: 3 additions & 3 deletions src/rules/attr-value-double-quotes.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ export default {
var self = this

parser.addListener('tagstart', function (event) {
var attrs = event.attrs,
attr,
col = event.col + event.tagName.length + 1
var attrs = event.attrs
var attr
var col = event.col + event.tagName.length + 1

for (var i = 0, l = attrs.length; i < l; i++) {
attr = attrs[i]
Expand Down
6 changes: 3 additions & 3 deletions src/rules/attr-value-not-empty.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ export default {
var self = this

parser.addListener('tagstart', function (event) {
var attrs = event.attrs,
attr,
col = event.col + event.tagName.length + 1
var attrs = event.attrs
var attr
var col = event.col + event.tagName.length + 1

for (var i = 0, l = attrs.length; i < l; i++) {
attr = attrs[i]
Expand Down
6 changes: 3 additions & 3 deletions src/rules/attr-value-single-quotes.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ export default {
var self = this

parser.addListener('tagstart', function (event) {
var attrs = event.attrs,
attr,
col = event.col + event.tagName.length + 1
var attrs = event.attrs
var attr
var col = event.col + event.tagName.length + 1

for (var i = 0, l = attrs.length; i < l; i++) {
attr = attrs[i]
Expand Down
6 changes: 3 additions & 3 deletions src/rules/attr-whitespace.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ export default {
var exceptions = Array.isArray(options) ? options : []

parser.addListener('tagstart', function (event) {
var attrs = event.attrs,
attr,
col = event.col + event.tagName.length + 1
var attrs = event.attrs
var attr
var col = event.col + event.tagName.length + 1

attrs.forEach(function (elem) {
attr = elem
Expand Down
46 changes: 23 additions & 23 deletions src/rules/id-class-value.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,23 @@ export default {
init: function (parser, reporter, options) {
var self = this
var arrRules = {
underline: {
regId: /^[a-z\d]+(_[a-z\d]+)*$/,
message:
'The id and class attribute values must be in lowercase and split by an underscore.',
},
dash: {
regId: /^[a-z\d]+(-[a-z\d]+)*$/,
message:
'The id and class attribute values must be in lowercase and split by a dash.',
},
hump: {
regId: /^[a-z][a-zA-Z\d]*([A-Z][a-zA-Z\d]*)*$/,
message:
'The id and class attribute values must meet the camelCase style.',
},
underline: {
regId: /^[a-z\d]+(_[a-z\d]+)*$/,
message:
'The id and class attribute values must be in lowercase and split by an underscore.',
},
rule
dash: {
regId: /^[a-z\d]+(-[a-z\d]+)*$/,
message:
'The id and class attribute values must be in lowercase and split by a dash.',
},
hump: {
regId: /^[a-z][a-zA-Z\d]*([A-Z][a-zA-Z\d]*)*$/,
message:
'The id and class attribute values must meet the camelCase style.',
},
}
var rule

if (typeof options === 'string') {
rule = arrRules[options]
Expand All @@ -30,17 +30,17 @@ export default {
}

if (rule && rule.regId) {
var regId = rule.regId,
message = rule.message
var regId = rule.regId
var message = rule.message

if (!(regId instanceof RegExp)) {
regId = new RegExp(regId)
}

parser.addListener('tagstart', function (event) {
var attrs = event.attrs,
attr,
col = event.col + event.tagName.length + 1
var attrs = event.attrs
var attr
var col = event.col + event.tagName.length + 1

for (var i = 0, l1 = attrs.length; i < l1; i++) {
attr = attrs[i]
Expand All @@ -58,8 +58,8 @@ export default {
}

if (attr.name.toLowerCase() === 'class') {
var arrClass = attr.value.split(/\s+/g),
classValue
var arrClass = attr.value.split(/\s+/g)
var classValue

for (var j = 0, l2 = arrClass.length; j < l2; j++) {
classValue = arrClass[j]
Expand Down
8 changes: 4 additions & 4 deletions src/rules/id-unique.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ export default {
var mapIdCount = {}

parser.addListener('tagstart', function (event) {
var attrs = event.attrs,
attr,
id,
col = event.col + event.tagName.length + 1
var attrs = event.attrs
var attr
var id
var col = event.col + event.tagName.length + 1

for (var i = 0, l = attrs.length; i < l; i++) {
attr = attrs[i]
Expand Down
12 changes: 6 additions & 6 deletions src/rules/input-requires-label.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ export default {
id: 'input-requires-label',
description: 'All [ input ] tags must have a corresponding [ label ] tag. ',
init: function (parser, reporter) {
var self = this,
labelTags = [],
inputTags = []
var self = this
var labelTags = []
var inputTags = []

parser.addListener('tagstart', function (event) {
var tagName = event.tagName.toLowerCase(),
mapAttrs = parser.getMapAttrs(event.attrs),
col = event.col + tagName.length + 1
var tagName = event.tagName.toLowerCase()
var mapAttrs = parser.getMapAttrs(event.attrs)
var col = event.col + tagName.length + 1

if (tagName === 'input') {
inputTags.push({ event: event, col: col, id: mapAttrs['id'] })
Expand Down
Loading

0 comments on commit 771376d

Please sign in to comment.