Skip to content

Commit

Permalink
fix: set pagination limit to 30 and query all paginated results (ijjk#67
Browse files Browse the repository at this point in the history
)
  • Loading branch information
JinhaiZ committed Apr 18, 2021
1 parent 311601d commit 1402ad4
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions src/lib/notion/getPageData.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
import rpc, { values } from './rpc'

export default async function getPageData(pageId: string) {
const maximumChunckNumer = 1000_0 // a reasonable size limit for the largest blog post (100MB), as one chunk is about 10KB
try {
const data = await loadPageChunk({ pageId })
const blocks = values(data.recordMap.block)
var chunkNumber = 0
var data = await loadPageChunk({ pageId, chunkNumber })
var blocks = data.recordMap.block

if (blocks[0] && blocks[0].value.content) {
while (data.cursor.stack.length != 0 && chunkNumber < maximumChunckNumer) {
chunkNumber = chunkNumber + 1
data = await loadPageChunk({ pageId, chunkNumber, cursor: data.cursor })
blocks = Object.assign(blocks, data.recordMap.block)
}
const blockArray = values(blocks)
if (blockArray[0] && blockArray[0].value.content) {
// remove table blocks
blocks.splice(0, 3)
blockArray.splice(0, 3)
}

return { blocks }
return { blocks: blockArray }
} catch (err) {
console.error(`Failed to load pageData for ${pageId}`, err)
return { blocks: [] }
Expand All @@ -19,7 +26,7 @@ export default async function getPageData(pageId: string) {

export function loadPageChunk({
pageId,
limit = 100,
limit = 30,
cursor = { stack: [] },
chunkNumber = 0,
verticalColumns = false,
Expand Down

0 comments on commit 1402ad4

Please sign in to comment.