-
Notifications
You must be signed in to change notification settings - Fork 3
/
.eslintrc.js
90 lines (89 loc) · 2.84 KB
/
.eslintrc.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
const extensionParams = require('./extension.json');
const releaseYear = (new Date(extensionParams.releaseDate)).getFullYear();
const currentYear = (new Date()).getFullYear();
const copyrightHeader = [
'***********************************************************************',
`This file is part of the ${extensionParams.name} - EspoCRM extension.`,
'',
`${extensionParams.author}`,
`Copyright (C) ${releaseYear}-${currentYear} ${extensionParams.authors.join(', ')}`,
'',
'This program is free software: you can redistribute it and/or modify',
'it under the terms of the GNU General Public License as published by',
'the Free Software Foundation, either version 3 of the License, or',
'(at your option) any later version.',
'',
'This program is distributed in the hope that it will be useful,',
'but WITHOUT ANY WARRANTY; without even the implied warranty of',
'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the',
'GNU General Public License for more details.',
'',
'You should have received a copy of the GNU General Public License',
'along with this program. If not, see <https://www.gnu.org/licenses/>.',
'***********************************************************************'
];
module.exports = {
extends: 'eslint:recommended',
env: {
'browser': true,
'node': true,
'es2021': true,
'jquery': true,
},
globals: {
'Espo': 'readonly',
'define': 'readonly',
'_': 'readonly',
'moment': 'readonly',
'Backbone': 'readonly',
'Handlebars': 'readonly',
'ace': 'readonly'
},
parserOptions: {
'ecmaVersion': 12,
'sourceType': 'module'
},
plugins: [
'header'
],
ignorePatterns: [
'/build/**',
'/site/**',
'src/**/lib/**'
],
rules: {
'no-var': 'error',
'prefer-arrow-callback': ['error', { 'allowUnboundThis': false }],
'no-console': 'error',
'block-spacing': ['error', 'always'],
'indent': ['error', 4, { 'SwitchCase': 1 }],
'no-unused-vars': 'warn',
'comma-spacing': ['error', { 'before': false, 'after': true }],
'quotes': ['error', 'single', { 'avoidEscape': true }],
'padding-line-between-statements': [
'error',
{
'blankLine': 'always',
'prev': '*',
'next': [
'return'
]
}
],
'padded-blocks': [
'error',
{
'classes': 'always'
}
],
},
overrides: [
{
files: ['src/**/*.js'],
extends: 'eslint:recommended',
rules: {
'header/header': ['error', 'block', copyrightHeader]
}
},
]
};