mediawiki-skins-MinervaNeue/.eslintrc.js
Ed Sanders 9716e52f30 eslint: Remove upstreamed OO global
Change-Id: Iced0659f0e0c31a31d890e393997d0e08fdbc1d6
2020-07-07 21:51:30 +01:00

56 lines
1.8 KiB
JavaScript

// "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 = {
"root": true,
"extends": [
"wikimedia/client",
"wikimedia/jquery",
"wikimedia/mediawiki"
],
"env": {
"commonjs": true
},
"globals": {
"require": "readonly"
},
"rules": {
"no-restricted-properties": [
"error",
{
"property": "mobileFrontend",
"message": "Minerva should only make use of core code. Any code using mobileFrontend should be placed inside the MobileFrontend extension"
},
{
"property": "define",
"message": "The method `define` if used with mw.mobileFrontend is deprecated. Please use `module.exports`."
},
{
"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`."
}
],
"object-property-newline": "error",
"mediawiki/class-doc": "off",
"no-use-before-define": "off",
"no-underscore-dangle": "off",
"jsdoc/no-undefined-types": "off"
}
};
module.exports = Object.assign(
config,
merge( config, require( 'eslint-config-wikimedia/language/not-es5.js' ) )
);