UNPKG

@udus/notion-renderer

Version:
57 lines (56 loc) 1.77 kB
import { Client, isFullDatabase, isFullPage } from "@notionhq/client"; import { listComments } from "../../comments.js"; import { retrieveDatabase } from "../../database/retrieve.js"; import { retrievePage } from "../../pages/retrieve.js"; export const convertLinkToPageResponseToBlock = async (block, client) => { switch (block.link_to_page.type) { case "database_id": { const { ok, data } = await retrieveDatabase(client, { database_id: block.link_to_page.database_id, }); if (!ok) { return block; } if (!isFullDatabase(data)) { return block; } return { ...block, link_to_page: { ...block.link_to_page, database: data, }, }; } case "page_id": { const { ok, data } = await retrievePage(client, { page_id: block.link_to_page.page_id, }); if (!ok) { return block; } if (!isFullPage(data)) { return block; } return { ...block, link_to_page: { ...block.link_to_page, page: data, }, }; } case "comment_id": { const linkedComments = await listComments(client, { block_id: block.link_to_page.comment_id, }); return { ...block, link_to_page: { ...block.link_to_page, comments: linkedComments, }, }; } } };