Skip to content

Commit

Permalink
Merge pull request #96 from github/merge-es6-into-other-configs
Browse files Browse the repository at this point in the history
Merge ES6 into other configs
  • Loading branch information
koddsson committed Mar 19, 2020
2 parents 6e4f49c + 054b28d commit a7b8b84
Show file tree
Hide file tree
Showing 21 changed files with 105 additions and 115 deletions.
12 changes: 6 additions & 6 deletions bin/eslint-ignore-errors.js
Expand Up @@ -11,22 +11,22 @@ const fs = require('fs')
const execFile = require('child_process').execFile

execFile('eslint', ['--format', 'json', process.argv[2]], (error, stdout) => {
JSON.parse(stdout).forEach(result => {
for (const result of JSON.parse(stdout)) {
const filename = result.filePath
const jsLines = fs.readFileSync(filename, 'utf8').split('\n')
const offensesByLine = {}
let addedLines = 0

// Produces {47: ['github/no-d-none', 'github/no-blur'], 83: ['github/no-blur']}
result.messages.forEach(message => {
for (const message of result.messages) {
if (offensesByLine[message.line]) {
offensesByLine[message.line].push(message.ruleId)
} else {
offensesByLine[message.line] = [message.ruleId]
}
})
}

Object.keys(offensesByLine).forEach(line => {
for (const line of Object.keys(offensesByLine)) {
const lineIndex = line - 1 + addedLines
const previousLine = jsLines[lineIndex - 1]
const ruleIds = offensesByLine[line].join(', ')
Expand All @@ -37,12 +37,12 @@ execFile('eslint', ['--format', 'json', process.argv[2]], (error, stdout) => {
jsLines.splice(lineIndex, 0, `${leftPad}/* eslint-disable-next-line ${ruleIds} */`)
}
addedLines += 1
})
}

if (result.messages.length !== 0) {
fs.writeFileSync(filename, jsLines.join('\n'), 'utf8')
}
})
}
})

function isDisableComment(line) {
Expand Down
4 changes: 2 additions & 2 deletions bin/npm-check-github-package-requirements.js
Expand Up @@ -10,7 +10,7 @@ function check(name, callback) {

function run() {
process.stdout.write(`1..${checks.length}\n`)
checks.forEach(([count, name, callback]) => {
for (const [count, name, callback] of checks) {
Promise.resolve()
.then(callback)
.then(() => {
Expand All @@ -19,7 +19,7 @@ function run() {
.catch(error => {
process.stdout.write(`not ok ${count} - ${name}\n ${error}\n`)
})
})
}
}

const packageRoot = process.argv[2]
Expand Down
2 changes: 1 addition & 1 deletion lib/configs/app.js
Expand Up @@ -7,5 +7,5 @@ module.exports = {
'github/no-dataset': 'error',
'github/no-then': 'error'
},
extends: [require.resolve('./recommended'), require.resolve('./es6'), require.resolve('./browser')]
extends: [require.resolve('./recommended'), require.resolve('./browser')]
}
51 changes: 0 additions & 51 deletions lib/configs/es6.js

This file was deleted.

46 changes: 44 additions & 2 deletions lib/configs/recommended.js
@@ -1,8 +1,14 @@
module.exports = {
plugins: ['github', 'prettier', 'eslint-comments'],
parserOptions: {
ecmaFeatures: {
ecmaVersion: 6
},
sourceType: 'module'
},
env: {
commonjs: true
es6: true
},
plugins: ['github', 'prettier', 'eslint-comments', 'import'],
rules: {
'constructor-super': 'error',
'eslint-comments/disable-enable-pair': 'off',
Expand All @@ -13,7 +19,31 @@ module.exports = {
'eslint-comments/no-unused-enable': 'error',
'eslint-comments/no-use': ['error', {allow: ['eslint', 'eslint-disable-next-line', 'eslint-env', 'globals']}],
'func-style': ['error', 'declaration', {allowArrowFunctions: true}],
'github/array-foreach': 'error',
'github/no-implicit-buggy-globals': 'error',
'import/default': 'error',
'import/export': 'error',
'import/first': 'error',
'import/named': 'error',
'import/namespace': 'error',
'import/no-absolute-path': 'error',
'import/no-anonymous-default-export': [
'error',
{
allowAnonymousClass: false,
allowAnonymousFunction: false,
allowArray: true,
allowArrowFunction: false,
allowLiteral: true,
allowObject: true
}
],
'import/no-deprecated': 'error',
'import/no-duplicates': 'error',
'import/no-mutable-exports': 'error',
'import/no-named-as-default': 'error',
'import/no-named-as-default-member': 'error',
'import/no-namespace': 'error',
'no-case-declarations': 'error',
'no-class-assign': 'error',
'no-compare-neg-zero': 'error',
Expand Down Expand Up @@ -61,13 +91,25 @@ module.exports = {
'no-unused-vars': 'error',
'no-useless-concat': 'error',
'no-useless-escape': 'error',
'no-var': 'error',
'object-shorthand': ['error', 'always', {avoidQuotes: true}],
'prefer-const': 'error',
'prefer-promise-reject-errors': 'error',
'prefer-rest-params': 'error',
'prefer-spread': 'error',
'prefer-template': 'error',
'prettier/prettier': 'error',
'require-yield': 'error',
'use-isnan': 'error',
'valid-typeof': 'error',
camelcase: ['error', {properties: 'always'}],
eqeqeq: ['error', 'smart']
},
settings: {
'import/resolver': {
node: {
extensions: ['.js', '.ts']
}
}
}
}
1 change: 0 additions & 1 deletion lib/index.js
Expand Up @@ -17,7 +17,6 @@ module.exports = {
configs: {
app: require('./configs/app'),
browser: require('./configs/browser'),
es6: require('./configs/es6'),
recommended: require('./configs/recommended'),
typescript: require('./configs/typescript')
}
Expand Down
16 changes: 8 additions & 8 deletions lib/rules/js-class-name.js
Expand Up @@ -5,17 +5,17 @@ module.exports = {
},

create(context) {
var allJsClassNameRegexp = /\bjs-[_a-zA-Z0-9-]*/g
var validJsClassNameRegexp = /^js(-[a-z0-9]+)+$/g
var endWithJsClassNameRegexp = /\bjs-[_a-zA-Z0-9-]*$/g
const allJsClassNameRegexp = /\bjs-[_a-zA-Z0-9-]*/g
const validJsClassNameRegexp = /^js(-[a-z0-9]+)+$/g
const endWithJsClassNameRegexp = /\bjs-[_a-zA-Z0-9-]*$/g

function checkStringFormat(node, str) {
var matches = str.match(allJsClassNameRegexp) || []
matches.forEach(function(match) {
const matches = str.match(allJsClassNameRegexp) || []
for (const match of matches) {
if (!match.match(validJsClassNameRegexp)) {
context.report(node, 'js- class names should be lowercase and only contain dashes.')
}
})
}
}

function checkStringEndsWithJSClassName(node, str) {
Expand All @@ -40,13 +40,13 @@ module.exports = {
}
},
TemplateLiteral(node) {
node.quasis.forEach(function(quasi) {
for (const quasi of node.quasis) {
checkStringFormat(quasi, quasi.value.raw)

if (quasi.tail === false) {
checkStringEndsWithJSClassName(quasi, quasi.value.raw)
}
})
}
}
}
}
Expand Down
10 changes: 5 additions & 5 deletions lib/rules/no-implicit-buggy-globals.js
Expand Up @@ -7,14 +7,14 @@ module.exports = {
create(context) {
return {
Program() {
var scope = context.getScope()
const scope = context.getScope()

scope.variables.forEach(function(variable) {
for (const variable of scope.variables) {
if (variable.writeable) {
return
}

variable.defs.forEach(function(def) {
for (const def of variable.defs) {
if (
def.type === 'FunctionName' ||
def.type === 'ClassName' ||
Expand All @@ -23,8 +23,8 @@ module.exports = {
) {
context.report(def.node, 'Implicit global variable, assign as global property instead.')
}
})
})
}
}
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions tests/array-foreach.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/array-foreach')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/array-foreach')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('array-foreach', rule, {
valid: [
Expand Down
6 changes: 3 additions & 3 deletions tests/async-currenttarget.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/async-currenttarget')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/async-currenttarget')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('async-currenttarget', rule, {
valid: [
Expand Down
6 changes: 3 additions & 3 deletions tests/async-preventdefault.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/async-preventdefault')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/async-preventdefault')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('async-preventdefault', rule, {
valid: [
Expand Down
6 changes: 3 additions & 3 deletions tests/authenticity-token.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/authenticity-token')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/authenticity-token')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('authenticity-token', rule, {
valid: [],
Expand Down
6 changes: 3 additions & 3 deletions tests/get-attribute.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/get-attribute')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/get-attribute')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('get-attribute', rule, {
valid: [
Expand Down
6 changes: 3 additions & 3 deletions tests/js-class-name.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/js-class-name')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/js-class-name')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('js-class-name', rule, {
valid: [
Expand Down
6 changes: 3 additions & 3 deletions tests/no-blur.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/no-blur')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/no-blur')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('no-blur', rule, {
valid: [{code: 'target.focus()'}],
Expand Down
6 changes: 3 additions & 3 deletions tests/no-d-none.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/no-d-none')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/no-d-none')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('no-d-none', rule, {
valid: [
Expand Down
6 changes: 3 additions & 3 deletions tests/no-dataset.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/no-dataset')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/no-dataset')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('no-dataset', rule, {
valid: [
Expand Down
6 changes: 3 additions & 3 deletions tests/no-implicit-buggy-globals.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/no-implicit-buggy-globals')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/no-implicit-buggy-globals')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('no-implicit-buggy-globals', rule, {
valid: [
Expand Down
6 changes: 3 additions & 3 deletions tests/no-innerText.js
@@ -1,7 +1,7 @@
var rule = require('../lib/rules/no-innerText')
var RuleTester = require('eslint').RuleTester
const rule = require('../lib/rules/no-innerText')
const RuleTester = require('eslint').RuleTester

var ruleTester = new RuleTester()
const ruleTester = new RuleTester()

ruleTester.run('no-innerText', rule, {
valid: [
Expand Down

0 comments on commit a7b8b84

Please sign in to comment.