Skip to content

Commit 336b7fe

Browse files
committed
fix(api-server): use ipc instead of ipcMain
1 parent 5ecd39f commit 336b7fe

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

src/plugins/api-server/backend/main.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export const backend = createBackend<BackendType, APIServerConfig>({
7070
// Custom
7171
init(backendCtx) {
7272
this.app = new Hono();
73+
7374
const ws = createNodeWebSocket({
7475
app: this.app,
7576
});
@@ -121,7 +122,7 @@ export const backend = createBackend<BackendType, APIServerConfig>({
121122
() => this.volumeState,
122123
);
123124
registerAuth(this.app, backendCtx);
124-
registerWebsocket(this.app, ws);
125+
registerWebsocket(this.app, backendCtx, ws);
125126

126127
// swagger
127128
this.app.openAPIRegistry.registerComponent(

src/plugins/api-server/backend/routes/websocket.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { ipcMain } from 'electron';
21
import { createRoute } from '@hono/zod-openapi';
32

43
import { type NodeWebSocket } from '@hono/node-ws';
@@ -15,6 +14,8 @@ import type { WSContext } from 'hono/ws';
1514
import type { Context, Next } from 'hono';
1615
import type { RepeatMode, VolumeState } from '@/types/datahost-get-state';
1716
import type { HonoApp } from '../types';
17+
import type { BackendContext } from '@/types/contexts';
18+
import type { APIServerConfig } from '@/plugins/api-server/config';
1819

1920
enum DataTypes {
2021
PlayerInfo = 'PLAYER_INFO',
@@ -36,7 +37,11 @@ type PlayerState = {
3637
shuffle: boolean;
3738
};
3839

39-
export const register = (app: HonoApp, nodeWebSocket: NodeWebSocket) => {
40+
export const register = (
41+
app: HonoApp,
42+
{ ipc }: BackendContext<APIServerConfig>,
43+
{ upgradeWebSocket }: NodeWebSocket,
44+
) => {
4045
let volumeState: VolumeState | undefined = undefined;
4146
let repeat: RepeatMode = 'NONE';
4247
let shuffle = false;
@@ -89,24 +94,24 @@ export const register = (app: HonoApp, nodeWebSocket: NodeWebSocket) => {
8994
lastSongInfo = { ...songInfo };
9095
});
9196

92-
ipcMain.on('ytmd:volume-changed', (_, newVolumeState: VolumeState) => {
97+
ipc.on('ytmd:volume-changed', (newVolumeState: VolumeState) => {
9398
volumeState = newVolumeState;
9499
send(DataTypes.VolumeChanged, {
95100
volume: volumeState.state,
96101
muted: volumeState.isMuted,
97102
});
98103
});
99104

100-
ipcMain.on('ytmd:repeat-changed', (_, mode: RepeatMode) => {
105+
ipc.on('ytmd:repeat-changed', (mode: RepeatMode) => {
101106
repeat = mode;
102107
send(DataTypes.RepeatChanged, { repeat });
103108
});
104109

105-
ipcMain.on('ytmd:seeked', (_, t: number) => {
110+
ipc.on('ytmd:seeked', (t: number) => {
106111
send(DataTypes.PositionChanged, { position: t });
107112
});
108113

109-
ipcMain.on('ytmd:shuffle-changed', (_, newShuffle: boolean) => {
114+
ipc.on('ytmd:shuffle-changed', (newShuffle: boolean) => {
110115
shuffle = newShuffle;
111116
send(DataTypes.ShuffleChanged, { shuffle });
112117
});
@@ -123,7 +128,7 @@ export const register = (app: HonoApp, nodeWebSocket: NodeWebSocket) => {
123128
},
124129
},
125130
}),
126-
nodeWebSocket.upgradeWebSocket(() => ({
131+
upgradeWebSocket(() => ({
127132
onOpen(_, ws) {
128133
// "Unsafe argument of type `WSContext<WebSocket>` assigned to a parameter of type `WSContext<WebSocket>`. (@typescript-eslint/no-unsafe-argument)" ????? what?
129134
sockets.add(ws as WSContext<WebSocket>);

0 commit comments

Comments
 (0)