import type { Api } from "@jellyfin/sdk"; import type { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models"; import { getUserLibraryApi } from "@jellyfin/sdk/lib/utils/api"; /** * Retrieves an item by its ID from the API. * * @param api - The Jellyfin API instance. * @param itemId - The ID of the item to retrieve. * @returns The item object or undefined if no item matches the ID. */ export const getItemById = async ( api?: Api | null | undefined, itemId?: string | null | undefined, ): Promise => { if (!api || !itemId) { return undefined; } try { const itemData = await getUserLibraryApi(api).getItem({ itemId }); const item = itemData.data; if (!item) { console.error("No items found with the specified ID:", itemId); return undefined; } return item; } catch (error) { console.error("Failed to retrieve the item:", error); throw new Error(`Failed to retrieve the item due to an error: ${error}`); } };