From 10bcc5d5b7dc78483d29a3d1287e33b79e7232c6 Mon Sep 17 00:00:00 2001 From: Dave Nicolson Date: Sun, 30 May 2021 20:07:39 +0200 Subject: [PATCH] fix: undefined error --- src/errors.ts | 1 + src/yt-api.ts | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/errors.ts b/src/errors.ts index 3dda599..1d466ed 100644 --- a/src/errors.ts +++ b/src/errors.ts @@ -1,3 +1,4 @@ export const PlaylistNotEditableError = new Error('playlist is not editable') export const PlaylistDataFetchError = new Error('cannot fetch some data for the playlist') export const PlaylistVideosRemoveError = new Error('cannot remove videos from playlist') +export const PlaylistEmptyError = new Error('playlist is empty') diff --git a/src/yt-api.ts b/src/yt-api.ts index 2aca8c8..bc6288f 100644 --- a/src/yt-api.ts +++ b/src/yt-api.ts @@ -1,6 +1,6 @@ import sha1 from 'sha1' import { YTConfigData, PlaylistVideo, Playlist, PlaylistContinuation } from './youtube' -import { PlaylistNotEditableError } from '~src/errors' +import { PlaylistNotEditableError, PlaylistEmptyError } from '~src/errors' type YTHeaderKey = | 'X-Goog-Visitor-Id' @@ -115,6 +115,11 @@ async function fetchPlaylistInitialData(config: YTConfigData, playlistName: stri }) const data = (await response.json())[1].response.contents.twoColumnBrowseResultsRenderer.tabs[0].tabRenderer.content .sectionListRenderer.contents[0].itemSectionRenderer.contents[0].playlistVideoListRenderer + + if (!data) { + throw PlaylistEmptyError + } + return { playlistId: data.playlistId, isEditable: data.isEditable,