2020-02-11 22:48:19 +00:00
|
|
|
// "no-restricted-properties" rules are not properly merged when just using "extends".
|
|
|
|
// Therefore we have to have this file which calls a custom merge function.
|
|
|
|
// The merge function calls Object.assign with special handling for configuration such as
|
|
|
|
// `no-restricted-properties` and `no-restricted-syntax` which are array based - ensuring the two
|
|
|
|
// values being merged are concatenated.
|
|
|
|
const merge = require( 'eslint-config-wikimedia/language/merge.js' );
|
|
|
|
const config = {
|
2018-10-05 16:22:11 +00:00
|
|
|
"root": true,
|
2018-11-27 12:20:16 +00:00
|
|
|
"extends": [
|
|
|
|
"wikimedia/client",
|
2019-10-31 21:36:43 +00:00
|
|
|
"wikimedia/jquery",
|
|
|
|
"wikimedia/mediawiki"
|
2018-11-27 12:20:16 +00:00
|
|
|
],
|
2019-07-05 22:21:34 +00:00
|
|
|
"env": {
|
|
|
|
"commonjs": true
|
|
|
|
},
|
2017-04-11 02:30:17 +00:00
|
|
|
"globals": {
|
2019-02-21 14:54:04 +00:00
|
|
|
"OO": "readonly",
|
|
|
|
"require": "readonly"
|
2017-04-11 02:30:17 +00:00
|
|
|
},
|
|
|
|
"rules": {
|
2019-06-07 19:29:23 +00:00
|
|
|
"no-restricted-properties": [
|
|
|
|
"error",
|
2019-09-27 18:53:01 +00:00
|
|
|
{
|
|
|
|
"property": "mobileFrontend",
|
|
|
|
"message": "Minerva should only make use of core code. Any code using mobileFrontend should be placed inside the MobileFrontend extension"
|
|
|
|
},
|
2019-07-02 21:10:10 +00:00
|
|
|
{
|
|
|
|
"property": "define",
|
|
|
|
"message": "The method `define` if used with mw.mobileFrontend is deprecated. Please use `module.exports`."
|
|
|
|
},
|
2018-08-22 00:16:09 +00:00
|
|
|
{
|
|
|
|
"property": "done",
|
|
|
|
"message": "The method `done` if used with Deferred objects is incompatible with ES6 Promises. Please use `then`."
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"property": "fail",
|
|
|
|
"message": "The method `fail` if used with Deferred objects is incompatible with ES6 Promises. Please use `then`."
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"property": "always",
|
|
|
|
"message": "The method `always` if used with Deferred objects is incompatible with ES6 Promises. Please use `then`."
|
|
|
|
}
|
|
|
|
],
|
2017-04-11 02:30:17 +00:00
|
|
|
"object-property-newline": "error",
|
2020-04-27 16:53:06 +00:00
|
|
|
"mediawiki/class-doc": "off",
|
2019-01-09 13:57:26 +00:00
|
|
|
"no-use-before-define": "off",
|
|
|
|
"no-underscore-dangle": "off"
|
2017-04-11 02:30:17 +00:00
|
|
|
}
|
2020-02-11 22:48:19 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = Object.assign(
|
|
|
|
config,
|
|
|
|
merge( config, require( 'eslint-config-wikimedia/language/not-es5.js' ) )
|
|
|
|
);
|