Skip to content

Commit faa72d8

Browse files
committed
Switch to much stricter linting, fix all lint errors discovered.
1 parent 15fe432 commit faa72d8

File tree

7 files changed

+79
-14
lines changed

7 files changed

+79
-14
lines changed

.editorconfig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
root = true
2+
3+
[*]
4+
indent_style = tab
5+
end_of_line = lf
6+
charset = utf-8
7+
trim_trailing_whitespace = true
8+
insert_final_newline = true
9+
10+
[{package.json,.*rc,*.yml}]
11+
indent_style = space
12+
indent_size = 2
13+
14+
[*.md]
15+
trim_trailing_whitespace = false

.eslintrc

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,50 @@
11
{
22
"parser": "babel-eslint",
3+
"extends": "eslint:recommended",
4+
"env": {
5+
"browser": true
6+
},
7+
"ecmaFeatures": {
8+
"modules": true,
9+
"jsx": true
10+
},
311
"rules": {
4-
"strict": 0
12+
"no-unused-vars": [1, { "varsIgnorePattern": "^h$" }],
13+
"no-cond-assign": 1,
14+
"semi": 2,
15+
"camelcase": 0,
16+
"comma-style": 2,
17+
"comma-dangle": [2, "never"],
18+
"indent": [2, "tab", {"SwitchCase": 1}],
19+
"no-mixed-spaces-and-tabs": [2, "smart-tabs"],
20+
"no-trailing-spaces": [2, { "skipBlankLines": true }],
21+
"max-nested-callbacks": [2, 3],
22+
"no-eval": 2,
23+
"no-implied-eval": 2,
24+
"no-new-func": 2,
25+
"guard-for-in": 2,
26+
"eqeqeq": 2,
27+
"no-else-return": 2,
28+
"no-redeclare": 2,
29+
"no-dupe-keys": 2,
30+
"radix": 2,
31+
"strict": [2, "never"],
32+
"no-shadow": 0,
33+
"callback-return": [1, ["callback", "cb", "next", "done"]],
34+
"no-delete-var": 2,
35+
"no-undef-init": 2,
36+
"no-shadow-restricted-names": 2,
37+
"handle-callback-err": 0,
38+
"no-lonely-if": 2,
39+
"space-return-throw-case": 2,
40+
"constructor-super": 2,
41+
"no-this-before-super": 2,
42+
"no-dupe-class-members": 2,
43+
"no-const-assign": 2,
44+
"prefer-spread": 2,
45+
"no-useless-concat": 2,
46+
"no-var": 2,
47+
"object-shorthand": 2,
48+
"prefer-arrow-callback": 2
549
}
650
}

karma.conf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ module.exports = function(config) {
1414

1515
preprocessors: {
1616
'test/**/*.js': ['webpack'],
17-
'src/**/*.js': ['webpack'],
17+
'src/**/*.js': ['webpack'],
1818
'**/*.js': ['sourcemap']
1919
},
2020

src/preact.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -559,8 +559,8 @@ function build(dom, vnode) {
559559
dom.textContent = vnode;
560560
return dom;
561561
}
562-
else {
563-
if (dom.nodeType===1) recycler.collect(dom);
562+
else if (dom.nodeType===1) {
563+
recycler.collect(dom);
564564
}
565565
}
566566
return document.createTextNode(vnode);
@@ -769,7 +769,7 @@ let renderQueue = {
769769
/** Trigger all queued component renders.
770770
* @function
771771
*/
772-
let rerender = renderQueue.process
772+
let rerender = renderQueue.process;
773773

774774

775775

@@ -805,7 +805,7 @@ let recycler = {
805805
// remove event listeners & registry
806806
let l = node._listeners;
807807
delete node._listeners;
808-
if (l) for (let i in l) node.removeEventListener(i, eventProxy);
808+
if (l) for (let i in l) if (hop.call(l, i)) node.removeEventListener(i, eventProxy);
809809

810810
// strip attributes
811811
let len = node.attributes && node.attributes.length;

test/browser/render.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import { h, render, rerender, Component } from '../../src/preact';
22
let { expect } = chai;
33

4+
/*eslint-env browser, mocha */
5+
/*global sinon, chai*/
6+
47
/** @jsx h */
58

69
describe('render()', () => {
7-
var scratch;
10+
let scratch;
811

912
before( () => {
1013
scratch = document.createElement('div');
@@ -37,7 +40,7 @@ describe('render()', () => {
3740

3841
render(<foo />, scratch);
3942
render(<x-bar />, scratch);
40-
expect(scratch.childNodes).to.have.length(2)
43+
expect(scratch.childNodes).to.have.length(2);
4144
expect(scratch.childNodes[0]).to.have.property('nodeName', 'FOO');
4245
expect(scratch.childNodes[1]).to.have.property('nodeName', 'X-BAR');
4346
});
@@ -56,9 +59,9 @@ describe('render()', () => {
5659
.and.to.have.deep.property('0.nodeName', 'DIV');
5760

5861
let c = scratch.childNodes[0].childNodes;
59-
expect(c).to.have.length(3)
60-
expect(c).to.have.deep.property('0.nodeName', 'SPAN')
61-
expect(c).to.have.deep.property('1.nodeName', 'FOO')
62+
expect(c).to.have.length(3);
63+
expect(c).to.have.deep.property('0.nodeName', 'SPAN');
64+
expect(c).to.have.deep.property('1.nodeName', 'FOO');
6265
expect(c).to.have.deep.property('2.nodeName', 'X-BAR');
6366
});
6467

@@ -94,8 +97,7 @@ describe('render()', () => {
9497

9598
it('should only register on* functions as handlers', () => {
9699
let click = () => {},
97-
onclick = () => {},
98-
calls = [];
100+
onclick = () => {};
99101

100102
let proto = document.createElement('div').constructor.prototype;
101103

test/shared/exports.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { expect } from 'chai';
22
import { default as preact, h, render, Component, hooks, options } from '../../src/preact';
33

4+
/*eslint-env browser, mocha */
5+
46
describe('preact', () => {
57
it('should be available as a default export', () => {
68
expect(preact).to.be.an('object');

test/shared/h.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import { expect } from 'chai';
22
import { h, VNode } from '../../src/preact';
33

4+
/*eslint-env browser, mocha */
5+
46
/** @jsx h */
57

68
let flatten = obj => JSON.parse(JSON.stringify(obj));
79

810
describe('h(jsx)', () => {
911
it('should return a VNode', () => {
10-
var r;
12+
let r;
1113
expect( () => r = h('foo') ).not.to.throw();
1214
expect(r).to.be.an('object');
1315
expect(r).to.be.an.instanceof(VNode);

0 commit comments

Comments
 (0)