mirror of https://github.com/vector-im/riot-web
54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
module.exports = {
|
|
extends: ["matrix-org", "matrix-org/react-legacy"],
|
|
parser: "babel-eslint",
|
|
|
|
env: {
|
|
browser: true,
|
|
node: true,
|
|
},
|
|
globals: {
|
|
LANGUAGES_FILE: "readonly",
|
|
},
|
|
rules: {
|
|
// Things we do that break the ideal style
|
|
"no-constant-condition": "off",
|
|
"prefer-promise-reject-errors": "off",
|
|
"no-async-promise-executor": "off",
|
|
"quotes": "off",
|
|
},
|
|
|
|
overrides: [{
|
|
"files": ["src/**/*.{ts,tsx}", "test/**/*.{ts,tsx}"],
|
|
"extends": ["matrix-org/ts"],
|
|
"rules": {
|
|
// We're okay being explicit at the moment
|
|
"@typescript-eslint/no-empty-interface": "off",
|
|
// We disable this while we're transitioning
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
// We'd rather not do this but we do
|
|
"@typescript-eslint/ban-ts-comment": "off",
|
|
|
|
"quotes": "off",
|
|
"no-extra-boolean-cast": "off",
|
|
"no-restricted-properties": [
|
|
"error",
|
|
...buildRestrictedPropertiesOptions(
|
|
["window.innerHeight", "window.innerWidth", "window.visualViewport"],
|
|
"Use UIStore to access window dimensions instead",
|
|
),
|
|
],
|
|
},
|
|
}],
|
|
};
|
|
|
|
function buildRestrictedPropertiesOptions(properties, message) {
|
|
return properties.map(prop => {
|
|
const [object, property] = prop.split(".");
|
|
return {
|
|
object,
|
|
property,
|
|
message,
|
|
};
|
|
});
|
|
}
|