Files
zulip-desktop/xo.config.cjs
Anders Kaseorg 2c5b1ad297 xo: Use eslint-import-resolver-typescript.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2025-06-20 16:35:18 -07:00

118 lines
2.8 KiB
JavaScript

"use strict";
module.exports = {
prettier: true,
settings: {
"import/resolver": "typescript",
n: {
typescriptExtensionMap: [],
},
},
rules: {
"@typescript-eslint/no-dynamic-delete": "off",
"arrow-body-style": "error",
"import/no-extraneous-dependencies": [
"error",
{includeTypes: true, packageDir: __dirname},
],
"import/no-restricted-paths": [
"error",
{
zones: [
{
target: "./app/common",
from: "./app",
except: ["./common"],
},
{
target: "./app/main",
from: "./app",
except: ["./common", "./main"],
},
{
target: "./app/renderer",
from: "./app",
except: ["./common", "./renderer", "./resources"],
},
],
},
],
"import/order": [
"error",
{alphabetize: {order: "asc"}, "newlines-between": "always"},
],
"import/unambiguous": "error",
"no-restricted-imports": [
"error",
{
paths: [
{
name: "@sentry/electron",
message:
"Use @sentry/electron/main, @sentry/electron/renderer, or @sentry/core.",
},
{
name: "electron",
message:
"Use electron/main, electron/renderer, or electron/common.",
},
{
name: "electron/main",
importNames: ["ipcMain"],
message: "Use typed-ipc-main.",
},
{
name: "electron/renderer",
importNames: ["ipcRenderer"],
message: "Use typed-ipc-renderer.",
},
{
name: "electron-log",
message: "Use electron-log/main or electron-log/renderer.",
},
],
},
],
"no-warning-comments": "off",
"sort-imports": ["error", {ignoreDeclarationSort: true}],
strict: "error",
"unicorn/prefer-module": "off",
"unicorn/prefer-top-level-await": "off",
},
envs: ["node", "browser"],
overrides: [
{
files: ["**/*.ts"],
rules: {
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/consistent-type-imports": [
"error",
{disallowTypeAnnotations: false},
],
"@typescript-eslint/no-unused-vars": [
"error",
{argsIgnorePattern: "^_", caughtErrors: "all"},
],
"unicorn/no-await-expression-member": "off",
},
},
{
files: [
"**.cjs",
"i18next-scanner.config.js",
"scripts/win-sign.js",
"tests/**/*.js",
],
parserOptions: {
sourceType: "script",
},
},
{
files: ["**/*.d.ts"],
rules: {
"import/unambiguous": "off",
},
},
],
};