Skip to content

Commit 8b42dd5

Browse files
authored
Fix eslint reports (#9)
* setup eslint and fix some obvious issues * tweak eslint
1 parent a32884b commit 8b42dd5

7 files changed

Lines changed: 3039 additions & 472 deletions

File tree

.prettierignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.git
2+
.vscode
3+
.idea
4+
node_modules
5+
package.json
6+
package-lock.json

.prettierrc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"printWidth": 120,
3+
"tabWidth": 4,
4+
"useTabs": true,
5+
"semi": true,
6+
"singleQuote": true,
7+
"quoteProps": "preserve",
8+
"trailingComma": "all",
9+
"bracketSpacing": true,
10+
"bracketSameLine": false,
11+
"arrowParens": "avoid"
12+
}

eslint.config.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
const globals = require('globals');
2+
const eslintConfigPrettier = require('eslint-config-prettier');
3+
4+
const config = {
5+
languageOptions: {
6+
ecmaVersion: 2022,
7+
sourceType: 'commonjs',
8+
globals: {
9+
...globals.node,
10+
...globals.mocha,
11+
},
12+
},
13+
ignores: ['.git/*', '.vscode/*', '.idea/*', 'node_modules/*', 'grammars/*', 'parser/*'],
14+
rules: {
15+
'no-cond-assign': 'error',
16+
'no-const-assign': 'error',
17+
'no-dupe-args': 'error',
18+
'no-dupe-keys': 'error',
19+
'no-duplicate-case': 'error',
20+
'no-unreachable': 'error',
21+
'eqeqeq': 'error',
22+
'no-var': 'error',
23+
'no-undef': 'error',
24+
'no-bitwise': 'warn',
25+
'no-dupe-else-if': 'warn',
26+
'no-duplicate-imports': 'warn',
27+
'no-import-assign': 'warn',
28+
'no-empty': 'warn',
29+
'no-extra-semi': 'error',
30+
'no-global-assign': 'warn',
31+
'no-redeclare': 'warn',
32+
'no-debugger': 'error',
33+
'no-console': 'error',
34+
},
35+
};
36+
37+
module.exports = [config, eslintConfigPrettier];

index.js

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,32 @@ const SQLSelectParser = require('./parser/SQLSelectParser');
44
const selectStatementListener = require('./selectStatementListener.js');
55

66
const parseSelectStatement = (sql, logger) => {
7-
const chars = new antlr4.InputStream(sql);
8-
const lexer = new SQLSelectLexer(chars);
7+
const chars = new antlr4.InputStream(sql);
8+
const lexer = new SQLSelectLexer(chars);
99

10-
const tokens = new antlr4.CommonTokenStream(lexer);
11-
const parser = new SQLSelectParser(tokens);
10+
const tokens = new antlr4.CommonTokenStream(lexer);
11+
const parser = new SQLSelectParser(tokens);
1212

13-
parser.removeErrorListeners();
14-
class ExprErrorListener extends antlr4.error.ErrorListener {
15-
syntaxError(recognizer, offendingSymbol, line, column, msg) {
16-
const error = `line ${line}:${column} ${msg}`;
17-
if (!logger) {
18-
console.log(new Error(error));
19-
} else {
20-
logger(error);
21-
}
22-
}
23-
}
13+
parser.removeErrorListeners();
14+
class ExprErrorListener extends antlr4.error.ErrorListener {
15+
syntaxError(recognizer, offendingSymbol, line, column, msg) {
16+
const error = `line ${line}:${column} ${msg}`;
17+
if (!logger) {
18+
// eslint-disable-next-line no-console
19+
console.log(new Error(error));
20+
} else {
21+
logger(error);
22+
}
23+
}
24+
}
2425

25-
parser.addErrorListener(new ExprErrorListener());
26-
const tree = parser.query();
26+
parser.addErrorListener(new ExprErrorListener());
27+
const tree = parser.query();
2728

28-
const listener = new selectStatementListener(parser);
29-
antlr4.tree.ParseTreeWalker.DEFAULT.walk(listener, tree);
29+
const listener = new selectStatementListener(parser);
30+
antlr4.tree.ParseTreeWalker.DEFAULT.walk(listener, tree);
3031

31-
return listener.getResult();
32+
return listener.getResult();
3233
};
3334

34-
module.exports = parseSelectStatement;
35+
module.exports = parseSelectStatement;

0 commit comments

Comments
 (0)