Skip to content

Commit

Permalink
Merge pull request #45 from htmlacademy/feature/update-source
Browse files Browse the repository at this point in the history
Release 1.0.0
  • Loading branch information
kam4atka authored Jan 19, 2021
2 parents da56d30 + b490d68 commit 0e08e98
Show file tree
Hide file tree
Showing 13 changed files with 200 additions and 15 deletions.
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,5 +61,25 @@ For validating **ECMAScript 2015 (ES6)** in **Node.js** environment project use
}
}
```

For validating **ECMAScript 2018 (ES9)** project use `es9` version:

```json
{
"parserOptions": {
"ecmaVersion": 9,
"sourceType": "module"
},
"env": {
"es2017": true,
"browser": true,
"commonjs": true,
},
"extends": "htmlacademy/basic",
"rules": {
// Additional rules...
}
}
```
[travis-image]: https://travis-ci.org/htmlacademy/eslint-config-htmlacademy.svg?branch=master
[travis-url]: https://travis-ci.org/htmlacademy/eslint-config-htmlacademy
25 changes: 25 additions & 0 deletions basic.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module.exports = {
extends: 'eslint:recommended',
rules: {
// Possible Errors
// https://eslint.org/docs/rules/#possible-errors
// ---------------------------------------------
'no-console': 'error',
// Stylistic Issues
// https://eslint.org/docs/rules/#stylistic-issues
// ---------------------------------------------
'comma-dangle': ['error', {
'arrays': 'always-multiline',
'objects': 'always-multiline',
'functions': 'always-multiline',
}],
'indent': ['error', 2, {
SwitchCase: 1,
}],
'quotes': ['error', 'single'],
// ECMAScript 6
// https://eslint.org/docs/rules/#ecmascript-6
// ---------------------------------------------
'no-var': ['error'],
},
};
10 changes: 10 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
1.0.0 / 2021-01-08
==================

* 1.0.0
* update eslint to 7.16.0
* adds ES9 configuration extending eslint:recommended rules
* adds tests for es9 configuration
* updates README.md according to new configuration
* fixes tests for es5 and es6 configurations

0.6.0 / 2020-09-09
==================

Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "eslint-config-htmlacademy",
"version": "0.6.0",
"version": "1.0.0",
"description": "ESLint shareable config for the HTML Academy style",
"files": [
"es5.js",
Expand Down Expand Up @@ -45,9 +45,9 @@
},
"homepage": "https://github.com/htmlacademy/eslint-config-htmlacademy#readme",
"peerDependencies": {
"eslint": ">=4.2.0"
"eslint": ">=7.16.0"
},
"devDependencies": {
"eslint": "4.2.0"
"eslint": "7.16.0"
}
}
13 changes: 13 additions & 0 deletions test/basic/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
const config = require('../../basic');

config.parserOptions = {
ecmaVersion: 9,
sourceType: 'module',
};
config.env = {
'es2017': true,
'browser': true,
'commonjs': true,
};

module.exports = config;
29 changes: 29 additions & 0 deletions test/basic/comma-dangles.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
const arr0 = ['a', 'b', 'c'];
const arr1 = [
'a',
'b',
'c',
];

const obj0 = {q: 'q', w: 'w'};
const obj1 = {
q: 'q',
w: 'w',
};

const func0 = (a, b) => {
return a + b;
};
const func1 = (
a,
b,
) => {
return a + b;
};

func0(
obj0.a,
obj0.b,
);

throw new Error(arr0, arr1, obj0, obj1, func0, func1);
25 changes: 25 additions & 0 deletions test/basic/eslint.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module.exports = {
extends: 'eslint:recommended',
rules: {
// Possible Errors
// https://eslint.org/docs/rules/#possible-errors
// ---------------------------------------------
'no-console': 'error',
// Stylistic Issues
// https://eslint.org/docs/rules/#stylistic-issues
// ---------------------------------------------
'comma-dangle': ['error', {
'arrays': 'always-multiline',
'objects': 'always-multiline',
'functions': 'always-multiline',
}],
'indent': ['error', 2, {
SwitchCase: 1,
}],
'quotes': ['error', 'single'],
// ECMAScript 6
// https://eslint.org/docs/rules/#ecmascript-6
// ---------------------------------------------
'no-var': ['error'],
},
};
50 changes: 50 additions & 0 deletions test/basic/indent.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
'use strict';

// Continuation, aka MemberExpression
const promise = window.Promise.resolve(true);
promise.
then(function (data) {
return data;
}).
then(function (truthy) {
return !truthy;
}).
catch(function () {
return false;
});

// Function expression
const fun = function (first, second) {
return first + second;
};

// Function declaration
function Constructor(first, second) {
this.data = {
first: first,
second: second,
};
}

// Calling site arguments
const myObject = new Constructor(
'Petya',
'Vasya',
);
myObject.toString();

const result = fun(
'one',
'two',
);
result.toString();

// Switch
const a = 'a';

switch(a) {
case 'a':
break;
case 'b':
break;
}
4 changes: 4 additions & 0 deletions test/basic/no-var.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
let a = 0;
const B = 'B';

throw new Error (a, B);
6 changes: 6 additions & 0 deletions test/basic/quotes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
const a = 'Anything string';
const b = `Anything
string`;
const c = `This's a ${a}`;

throw new Error(a, b, c);
7 changes: 5 additions & 2 deletions test/es5/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
let config = require('../../es5');
'use strict';

var config = require('../../es5');

config.env = {
'es6': false,
'browser': true,
'commonjs': true
};

module.exports = config;
module.exports = config;
14 changes: 7 additions & 7 deletions test/es6/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
const config = require('../../es6');
const es5config = require('../../es5');
const config = require(`../../es6`);
const es5config = require(`../../es5`);

const es5Rules = es5config.rules;

config.rules = {
...config.rules,
...es5Rules
...es5Rules,
...config.rules
};

config.parserOptions = {
ecmaVersion: 6,
sourceType: 'module'
ecmaVersion: 9,
sourceType: `module`
};
config.env = {
'es6': true,
'browser': true,
'commonjs': true
};

module.exports = config;
module.exports = config;
6 changes: 3 additions & 3 deletions test/node/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const config = require('../../node');
const config = require(`../../node`);
config.parserOptions = {
ecmaVersion: 6,
sourceType: 'module'
sourceType: `module`
};
config.env = {
'es6': true,
Expand All @@ -10,4 +10,4 @@ config.env = {
'commonjs': true
};

module.exports = config;
module.exports = config;

0 comments on commit 0e08e98

Please sign in to comment.