fix: remove unnecessary JSON.stringify & JSON.parse

This commit is contained in:
JellyBrick
2023-09-30 08:43:10 +09:00
parent 72660f5aa1
commit 46d3a85cc0
6 changed files with 21 additions and 18 deletions

View File

@ -12,8 +12,8 @@ export const getSongInfo = () => songInfo;
const $ = <E extends Element = Element>(s: string): E | null => document.querySelector<E>(s);
const $$ = <E extends Element = Element>(s: string): NodeListOf<E> => document.querySelectorAll<E>(s);
ipcRenderer.on('update-song-info', async (_, extractedSongInfo: string) => {
songInfo = JSON.parse(extractedSongInfo) as SongInfo;
ipcRenderer.on('update-song-info', async (_, extractedSongInfo: SongInfo) => {
songInfo = extractedSongInfo;
if (songInfo.imageSrc) songInfo.image = await getImage(songInfo.imageSrc);
});
@ -138,7 +138,7 @@ export default () => {
data.videoDetails.elapsedSeconds = 0;
data.videoDetails.isPaused = false;
ipcRenderer.send('video-src-changed', JSON.stringify(data));
ipcRenderer.send('video-src-changed', data);
}
}, { once: true, passive: true });
};

View File

@ -3,7 +3,8 @@ import { BrowserWindow, ipcMain, nativeImage, net } from 'electron';
import { cache } from './decorators';
import config from '../config';
import { GetPlayerResponse } from '../types/get-player-response';
import type { GetPlayerResponse } from '../types/get-player-response';
export interface SongInfo {
title: string;
@ -53,8 +54,7 @@ export const getImage = cache(
},
);
const handleData = async (responseText: string, win: Electron.BrowserWindow) => {
const data = JSON.parse(responseText) as GetPlayerResponse;
const handleData = async (data: GetPlayerResponse, win: Electron.BrowserWindow) => {
if (!data) {
return;
}
@ -83,7 +83,7 @@ const handleData = async (responseText: string, win: Electron.BrowserWindow) =>
songInfo.imageSrc = thumbnails.at(-1)?.url.split('?')[0];
if (songInfo.imageSrc) songInfo.image = await getImage(songInfo.imageSrc);
win.webContents.send('update-song-info', JSON.stringify(songInfo));
win.webContents.send('update-song-info', songInfo);
}
};
@ -100,9 +100,9 @@ let handlingData = false;
const registerProvider = (win: BrowserWindow) => {
// This will be called when the song-info-front finds a new request with song data
ipcMain.on('video-src-changed', async (_, responseText: string) => {
ipcMain.on('video-src-changed', async (_, data: GetPlayerResponse) => {
handlingData = true;
await handleData(responseText, win);
await handleData(data, win);
handlingData = false;
for (const c of callbacks) {
c(songInfo, 'video-src-changed');