statistiques/src/notion/utils/queryAllDbResults.ts

22 lines
640 B
TypeScript
Raw Normal View History

2024-06-02 14:34:11 +02:00
import { Client } from "@notionhq/client";
import {
QueryDatabaseParameters,
QueryDatabaseResponse,
} from "@notionhq/client/build/src/api-endpoints";
export async function queryAllDbResults(
notion: Client,
dbQuery: QueryDatabaseParameters
): Promise<QueryDatabaseResponse["results"]> {
const dbResponse = await notion.databases.query(dbQuery);
if (dbResponse.has_more && dbResponse.next_cursor) {
const moreResults = await queryAllDbResults(notion, {
...dbQuery,
start_cursor: dbResponse.next_cursor,
});
return [...dbResponse.results, ...moreResults];
} else {
return dbResponse.results;
}
}