UNPKG

@udus/notion-renderer

Version:
37 lines (36 loc) 1.28 kB
import { Client, isFullPage } from "@notionhq/client"; import { retrievePage } from "../../pages/retrieve.js"; export const convertResponseToRelationPropertyItem = (property, client) => { return { ...property, relation: Array.isArray(property.relation) ? property.relation : [property.relation], }; }; export const convertListResponseToRelationPropertyItem = async (list, client) => { const relationPropertyItemObject = { ...list.property_item, relation: await list.results .filter(isRelationTypeObject) .reduce(async (prev, cur) => { const { ok, data: page } = await retrievePage(client, { page_id: cur.relation.id, }); // NOTE: wait 1sec to avoid 429 error await new Promise((resolve) => setTimeout(resolve, 1000)); if (!ok || !isFullPage(page)) { return prev; } return [ ...(await prev), { ...cur.relation, page, }, ]; }, Promise.resolve([])), }; return relationPropertyItemObject; }; export const isRelationTypeObject = (obj) => obj.type === "relation";