diff --git a/electron/.eslintrc.js b/electron/.eslintrc.js new file mode 100644 index 000000000..950f2b4ea --- /dev/null +++ b/electron/.eslintrc.js @@ -0,0 +1,35 @@ +module.exports = { + root: true, + parser: "@typescript-eslint/parser", + plugins: ["@typescript-eslint"], + env: { + node: true, + }, + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:react/recommended", + ], + rules: { + "@typescript-eslint/no-non-null-assertion": "off", + quotes: ["error", "single"], + "react/prop-types": "off", // In favor of strong typing - no need to dedupe + }, + settings: { + react: { + createClass: "createReactClass", // Regex for Component Factory to use, + // default to "createReactClass" + pragma: "React", // Pragma to use, default to "React" + version: "detect", // React version. "detect" automatically picks the version you have installed. + // You can also use `16.0`, `16.3`, etc, if you want to override the detected value. + // default to latest and warns if missing + // It will default to "detect" in the future + }, + linkComponents: [ + // Components used as alternatives to for linking, eg. + "Hyperlink", + { name: "Link", linkAttribute: "to" }, + ], + }, + ignorePatterns: ["renderer/*", "node_modules/*", "core/plugins"], +}; diff --git a/electron/package.json b/electron/package.json index dfdf70f26..6a79e442a 100644 --- a/electron/package.json +++ b/electron/package.json @@ -30,6 +30,7 @@ } }, "scripts": { + "lint": "eslint . --ext \".js,.jsx,.ts,.tsx\"", "dev": "tsc -p . && electron .", "build": "tsc -p . && electron-builder -p never -mw", "build:publish": "tsc -p . && electron-builder -p onTagOrDraft -mw", @@ -45,9 +46,12 @@ "request-progress": "^3.0.0" }, "devDependencies": { + "@typescript-eslint/eslint-plugin": "^6.7.3", + "@typescript-eslint/parser": "^6.7.3", "concurrently": "^8.2.1", "electron": "26.2.1", "electron-builder": "^24.6.4", + "eslint-plugin-react": "^7.33.2", "wait-on": "^7.0.1" }, "installConfig": {