Skip to content

Commit d270d56

Browse files
committed
xo: Prohibit main-only and renderer-only APIs in wrong processes.
Signed-off-by: Anders Kaseorg <[email protected]>
1 parent 2c5b1ad commit d270d56

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

xo.config.cjs

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,36 @@
11
"use strict";
22

3+
const restrictedMainImports = [
4+
{
5+
name: "@sentry/electron/main",
6+
message: "Cannot use main-only APIs here.",
7+
},
8+
{
9+
name: "electron/main",
10+
message: "Cannot use main-only APIs here.",
11+
allowTypeImports: true, // https://github.com/zulip/zulip-desktop/issues/915
12+
},
13+
{
14+
name: "electron-log/main",
15+
message: "Cannot use main-only APIs here.",
16+
},
17+
];
18+
19+
const restrictedRendererImports = [
20+
{
21+
name: "@sentry/electron/renderer",
22+
message: "Cannot use renderer-only APIs here.",
23+
},
24+
{
25+
name: "electron/renderer",
26+
message: "Cannot use renderer-only APIs here.",
27+
},
28+
{
29+
name: "electron-log/renderer",
30+
message: "Cannot use renderer-only APIs here.",
31+
},
32+
];
33+
334
module.exports = {
435
prettier: true,
536
settings: {
@@ -113,5 +144,32 @@ module.exports = {
113144
"import/unambiguous": "off",
114145
},
115146
},
147+
{
148+
files: ["app/common/**"],
149+
rules: {
150+
"@typescript-eslint/no-restricted-imports": [
151+
"error",
152+
{paths: [...restrictedMainImports, ...restrictedRendererImports]},
153+
],
154+
},
155+
},
156+
{
157+
files: ["app/main/**"],
158+
rules: {
159+
"@typescript-eslint/no-restricted-imports": [
160+
"error",
161+
{paths: restrictedRendererImports},
162+
],
163+
},
164+
},
165+
{
166+
files: ["app/renderer/**"],
167+
rules: {
168+
"@typescript-eslint/no-restricted-imports": [
169+
"error",
170+
{paths: restrictedMainImports},
171+
],
172+
},
173+
},
116174
],
117175
};

0 commit comments

Comments
 (0)