summaryrefslogtreecommitdiffstats
path: root/mobile/android/.eslintrc.js
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/.eslintrc.js')
-rw-r--r--mobile/android/.eslintrc.js73
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)}`)",
+ },
+ ],
+ },
+ },
+ ],
+};