xo: Prohibit main-only and renderer-only APIs in wrong processes.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2025-06-20 16:20:59 -07:00
parent 2c5b1ad297
commit d270d56309

View File

@@ -1,5 +1,36 @@
"use strict";
const restrictedMainImports = [
{
name: "@sentry/electron/main",
message: "Cannot use main-only APIs here.",
},
{
name: "electron/main",
message: "Cannot use main-only APIs here.",
allowTypeImports: true, // https://github.com/zulip/zulip-desktop/issues/915
},
{
name: "electron-log/main",
message: "Cannot use main-only APIs here.",
},
];
const restrictedRendererImports = [
{
name: "@sentry/electron/renderer",
message: "Cannot use renderer-only APIs here.",
},
{
name: "electron/renderer",
message: "Cannot use renderer-only APIs here.",
},
{
name: "electron-log/renderer",
message: "Cannot use renderer-only APIs here.",
},
];
module.exports = {
prettier: true,
settings: {
@@ -113,5 +144,32 @@ module.exports = {
"import/unambiguous": "off",
},
},
{
files: ["app/common/**"],
rules: {
"@typescript-eslint/no-restricted-imports": [
"error",
{paths: [...restrictedMainImports, ...restrictedRendererImports]},
],
},
},
{
files: ["app/main/**"],
rules: {
"@typescript-eslint/no-restricted-imports": [
"error",
{paths: restrictedRendererImports},
],
},
},
{
files: ["app/renderer/**"],
rules: {
"@typescript-eslint/no-restricted-imports": [
"error",
{paths: restrictedMainImports},
],
},
},
],
};