diff --git a/components/notion/actions/append-block/append-block.mjs b/components/notion/actions/append-block/append-block.mjs index 0f64ccacec0a5..4c27d4132b82e 100644 --- a/components/notion/actions/append-block/append-block.mjs +++ b/components/notion/actions/append-block/append-block.mjs @@ -6,7 +6,7 @@ export default { key: "notion-append-block", name: "Append Block to Parent", description: "Creates and appends blocks to the specified parent. [See the documentation](https://developers.notion.com/reference/patch-block-children)", - version: "0.2.13", + version: "0.2.14", type: "action", props: { notion, @@ -47,6 +47,15 @@ export default { optional: true, }, }, + methods: { + chunkArray(array, chunkSize = 100) { + const chunks = []; + for (let i = 0; i < array.length; i += chunkSize) { + chunks.push(array.slice(i, i + chunkSize)); + } + return chunks; + }, + }, async run({ $ }) { const children = []; // add blocks from blockObjects @@ -97,8 +106,17 @@ export default { return; } - const { results } = await this.notion.appendBlock(this.pageId, children); - $.export("$summary", `Appended ${results.length} block(s) successfully`); - return results; + const results = []; + const chunks = this.chunkArray(children); + + for (const chunk of chunks) { + const { results: payload } = await this.notion.appendBlock(this.pageId, chunk); + results.push(payload); + } + + const totalAppended = results.reduce((sum, res) => sum + res.length, 0); + + $.export("$summary", `Appended ${totalAppended} block(s) successfully`); + return results.flat(); }, }; diff --git a/components/notion/package.json b/components/notion/package.json index 1fff015839b13..13f6615548065 100644 --- a/components/notion/package.json +++ b/components/notion/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/notion", - "version": "0.1.19", + "version": "0.1.20", "description": "Pipedream Notion Components", "main": "notion.app.mjs", "keywords": [