Skip to content

Commit 30b3bee

Browse files
authored
Merge pull request #1401 from organization/feat/refactor-plugin-system
2 parents 29a0ded + b059e43 commit 30b3bee

165 files changed

Lines changed: 6864 additions & 4845 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.eslintrc.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ module.exports = {
2626
'import/newline-after-import': 'error',
2727
'import/no-default-export': 'off',
2828
'import/no-duplicates': 'error',
29-
'import/no-unresolved': ['error', { ignore: ['^virtual:', '\\?inline$', '\\?raw$', '\\?asset&asarUnpack', '^youtubei.js$'] }],
29+
'import/no-unresolved': ['error', { ignore: ['^virtual:', '\\?inline$', '\\?raw$', '\\?asset&asarUnpack'] }],
3030
'import/order': [
3131
'error',
3232
{
@@ -67,4 +67,14 @@ module.exports = {
6767
es6: true,
6868
},
6969
ignorePatterns: ['dist', 'node_modules'],
70+
root: true,
71+
settings: {
72+
'import/parsers': {
73+
'@typescript-eslint/parser': ['.ts']
74+
},
75+
'import/resolver': {
76+
typescript: {},
77+
exports: {},
78+
},
79+
},
7080
};

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ electron-builder.yml
1212
!.yarn/releases
1313
!.yarn/sdks
1414
!.yarn/versions
15+
.vite-inspect

electron.vite.config.ts

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
1+
import { resolve } from 'node:path';
2+
13
import { defineConfig, defineViteConfig } from 'electron-vite';
24
import builtinModules from 'builtin-modules';
35
import viteResolve from 'vite-plugin-resolve';
6+
import Inspect from 'vite-plugin-inspect';
47

5-
import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-virtual-module-generator';
8+
import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-importer';
9+
import pluginLoader from './vite-plugins/plugin-loader';
610

711
import type { UserConfig } from 'vite';
812

13+
const resolveAlias = {
14+
'@': resolve(__dirname, './src'),
15+
'@assets': resolve(__dirname, './assets'),
16+
};
17+
918
export default defineConfig({
1019
main: defineViteConfig(({ mode }) => {
1120
const commonConfig: UserConfig = {
1221
plugins: [
22+
pluginLoader('backend'),
1323
viteResolve({
14-
'virtual:MainPlugins': pluginVirtualModuleGenerator('main'),
15-
'virtual:MenuPlugins': pluginVirtualModuleGenerator('menu'),
24+
'virtual:plugins': pluginVirtualModuleGenerator('main'),
1625
}),
1726
],
1827
publicDir: 'assets',
@@ -30,9 +39,15 @@ export default defineConfig({
3039
input: './src/index.ts',
3140
},
3241
},
42+
resolve: {
43+
alias: resolveAlias,
44+
},
3345
};
3446

3547
if (mode === 'development') {
48+
commonConfig.plugins?.push(
49+
Inspect({ build: true, outputDir: '.vite-inspect/backend' }),
50+
);
3651
return commonConfig;
3752
}
3853

@@ -48,8 +63,9 @@ export default defineConfig({
4863
preload: defineViteConfig(({ mode }) => {
4964
const commonConfig: UserConfig = {
5065
plugins: [
66+
pluginLoader('preload'),
5167
viteResolve({
52-
'virtual:PreloadPlugins': pluginVirtualModuleGenerator('preload'),
68+
'virtual:plugins': pluginVirtualModuleGenerator('preload'),
5369
}),
5470
],
5571
build: {
@@ -64,11 +80,17 @@ export default defineConfig({
6480
rollupOptions: {
6581
external: ['electron', 'custom-electron-prompt', ...builtinModules],
6682
input: './src/preload.ts',
67-
}
83+
},
84+
},
85+
resolve: {
86+
alias: resolveAlias,
6887
},
6988
};
7089

7190
if (mode === 'development') {
91+
commonConfig.plugins?.push(
92+
Inspect({ build: true, outputDir: '.vite-inspect/preload' }),
93+
);
7294
return commonConfig;
7395
}
7496

@@ -84,8 +106,9 @@ export default defineConfig({
84106
renderer: defineViteConfig(({ mode }) => {
85107
const commonConfig: UserConfig = {
86108
plugins: [
109+
pluginLoader('renderer'),
87110
viteResolve({
88-
'virtual:RendererPlugins': pluginVirtualModuleGenerator('renderer'),
111+
'virtual:plugins': pluginVirtualModuleGenerator('renderer'),
89112
}),
90113
],
91114
root: './src/',
@@ -104,9 +127,15 @@ export default defineConfig({
104127
input: './src/index.html',
105128
},
106129
},
130+
resolve: {
131+
alias: resolveAlias,
132+
},
107133
};
108134

109135
if (mode === 'development') {
136+
commonConfig.plugins?.push(
137+
Inspect({ build: true, outputDir: '.vite-inspect/renderer' }),
138+
);
110139
return commonConfig;
111140
}
112141

package.json

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,12 @@
9494
"test": "playwright test",
9595
"test:debug": "cross-env DEBUG=pw:*,-pw:test:protocol playwright test",
9696
"build": "electron-vite build",
97+
"vite:inspect": "pnpm clean && electron-vite build --mode development && pnpm exec serve .vite-inspect",
9798
"start": "electron-vite preview",
9899
"start:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 pnpm start",
99100
"dev": "electron-vite dev",
100101
"dev:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 pnpm dev",
101-
"clean": "del-cli dist && del-cli pack",
102+
"clean": "del-cli dist && del-cli pack && del-cli .vite-inspect",
102103
"dist": "pnpm clean && pnpm build && electron-builder --win --mac --linux -p never",
103104
"dist:linux": "pnpm clean && pnpm build && electron-builder --linux -p never",
104105
"dist:mac": "pnpm clean && pnpm build && electron-builder --mac dmg:x64 -p never",
@@ -117,7 +118,7 @@
117118
},
118119
"pnpm": {
119120
"overrides": {
120-
"rollup": "4.4.1",
121+
"rollup": "4.6.0",
121122
"node-gyp": "10.0.1",
122123
"xml2js": "0.6.2",
123124
"node-fetch": "3.3.2",
@@ -128,7 +129,8 @@
128129
"dependencies": {
129130
"@cliqz/adblocker-electron": "1.26.12",
130131
"@cliqz/adblocker-electron-preload": "1.26.12",
131-
"@fastify/deepmerge": "1.3.0",
132+
"@electron-toolkit/tsconfig": "1.0.1",
133+
"@electron/remote": "2.1.0",
132134
"@ffmpeg.wasm/core-mt": "0.12.0",
133135
"@ffmpeg.wasm/main": "0.12.0",
134136
"@foobar404/wave": "2.0.4",
@@ -138,35 +140,39 @@
138140
"async-mutex": "0.4.0",
139141
"butterchurn": "3.0.0-beta.4",
140142
"butterchurn-presets": "3.0.0-beta.4",
141-
"conf": "12.0.0",
143+
"conf": "10.2.0",
142144
"custom-electron-prompt": "1.5.7",
143145
"dbus-next": "0.10.2",
146+
"deepmerge-ts": "5.1.0",
144147
"electron-debug": "3.2.0",
145148
"electron-is": "3.0.0",
146149
"electron-localshortcut": "3.2.1",
147150
"electron-store": "8.1.0",
148151
"electron-unhandled": "4.0.1",
149152
"electron-updater": "6.1.7",
150153
"fast-average-color": "9.4.0",
154+
"fast-equals": "^5.0.1",
151155
"filenamify": "6.0.0",
152156
"howler": "2.2.4",
153157
"html-to-text": "9.0.5",
154158
"keyboardevent-from-electron-accelerator": "2.0.0",
155159
"keyboardevents-areequal": "0.2.2",
156160
"node-html-parser": "6.1.11",
157161
"node-id3": "0.2.6",
162+
"serve": "^14.2.1",
158163
"simple-youtube-age-restriction-bypass": "git+https://github.com/organization/Simple-YouTube-Age-Restriction-Bypass.git#v2.5.8",
164+
"ts-morph": "^20.0.0",
159165
"vudio": "2.1.1",
160166
"x11": "2.3.0",
161167
"youtubei.js": "7.0.0"
162168
},
163169
"devDependencies": {
164-
"@playwright/test": "1.40.0",
170+
"@playwright/test": "1.40.1",
165171
"@total-typescript/ts-reset": "0.5.1",
166172
"@types/electron-localshortcut": "3.1.3",
167173
"@types/howler": "2.2.11",
168174
"@types/html-to-text": "9.0.4",
169-
"@typescript-eslint/eslint-plugin": "6.12.0",
175+
"@typescript-eslint/eslint-plugin": "6.13.0",
170176
"bufferutil": "4.0.8",
171177
"builtin-modules": "^3.3.0",
172178
"cross-env": "7.0.3",
@@ -176,15 +182,18 @@
176182
"electron-devtools-installer": "3.2.0",
177183
"electron-vite": "1.0.29",
178184
"eslint": "8.54.0",
185+
"eslint-import-resolver-exports": "1.0.0-beta.5",
186+
"eslint-import-resolver-typescript": "3.6.1",
179187
"eslint-plugin-import": "2.29.0",
180188
"eslint-plugin-prettier": "5.0.1",
181189
"glob": "10.3.10",
182190
"node-gyp": "10.0.1",
183-
"playwright": "1.40.0",
191+
"playwright": "1.40.1",
184192
"rollup": "4.6.0",
185193
"typescript": "5.3.2",
186194
"utf-8-validate": "6.0.3",
187195
"vite": "4.5.0",
196+
"vite-plugin-inspect": "^0.7.42",
188197
"vite-plugin-resolve": "2.5.1",
189198
"ws": "8.14.2"
190199
},

0 commit comments

Comments
 (0)