@udus/notion-renderer
Version:

28 lines (27 loc) • 908 B
JavaScript
import { Client, isFullPage } from "@notionhq/client";
import { notUndefined } from "../../../libs/utils/utils.js";
import { callAPIWithBackOff } from "../../utils/api.js";
import { convertResponseToPage } from "../index.js";
export const queryDatabase = async (client, args) => {
const result = await callAPIWithBackOff(client.databases.query, args);
return result;
};
export const fetchDatabaseItems = async (client, args) => {
const { ok, data } = await queryDatabase(client, args);
if (!ok) {
return { ok, data };
}
const pages = (await Promise.all(data.results.map(async (page) => {
if (!isFullPage(page))
return;
const converted = convertResponseToPage(page, client);
return converted;
}))).filter(notUndefined);
return {
ok: true,
data: {
...data,
results: pages,
},
};
};