diff options
Diffstat (limited to 'mobile/android/.eslintrc.js')
-rw-r--r-- | mobile/android/.eslintrc.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/mobile/android/.eslintrc.js b/mobile/android/.eslintrc.js new file mode 100644 index 0000000000..05a1def154 --- /dev/null +++ b/mobile/android/.eslintrc.js @@ -0,0 +1,73 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const { + globals, +} = require("../../toolkit/components/extensions/parent/.eslintrc.js"); + +module.exports = { + overrides: [ + { + files: ["components/extensions/ext-*.js"], + excludedFiles: ["components/extensions/ext-c-*.js"], + globals: { + ...globals, + // These globals are defined in ext-android.js and can only be used in + // the extension files that run in the parent process. + EventDispatcher: true, + ExtensionError: true, + makeGlobalEvent: true, + TabContext: true, + tabTracker: true, + windowTracker: true, + }, + }, + { + files: [ + "chrome/geckoview/**", + "components/geckoview/**", + "modules/geckoview/**", + "actors/**", + ], + rules: { + "no-unused-vars": [ + "error", + { + args: "none", + vars: "local", + varsIgnorePattern: "(debug|warn)", + }, + ], + "no-restricted-syntax": [ + "error", + { + selector: `CallExpression > \ + Identifier.callee[name = /^debug$|^warn$/]`, + message: + "Use debug and warn with template literals, e.g. debug `foo`;", + }, + { + selector: `BinaryExpression[operator = '+'] > \ + TaggedTemplateExpression.left > \ + Identifier.tag[name = /^debug$|^warn$/]`, + message: + "Use only one template literal with debug/warn instead of concatenating multiple expressions,\n" + + " e.g. (debug `foo ${42} bar`) instead of (debug `foo` + 42 + `bar`)", + }, + { + selector: `TaggedTemplateExpression[tag.type = 'Identifier'][tag.name = /^debug$|^warn$/] > \ + TemplateLiteral.quasi CallExpression > \ + MemberExpression.callee[object.type = 'Identifier'][object.name = 'JSON'] > \ + Identifier.property[name = 'stringify']`, + message: + "Don't call JSON.stringify within debug/warn literals,\n" + + " e.g. (debug `foo=${foo}`) instead of (debug `foo=${JSON.stringify(foo)}`)", + }, + ], + }, + }, + ], +}; |