UNPKG

notion-page-tree

Version:

Recursively fetch nested Notion pages from the root page/database/block node.

61 lines (60 loc) 2.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractPlainTextFromBlock = exports.flattenRichText = void 0; var flattenRichText = function (richTextItemResponse) { return richTextItemResponse.reduce(function (flatText, richTextObject) { return "".concat(flatText, " ").concat(richTextObject.plain_text, " "); }, ''); }; exports.flattenRichText = flattenRichText; var extractPlainTextFromBlock = function (block) { switch (block.type) { case 'audio': return (0, exports.flattenRichText)(block.audio.caption); case 'bookmark': return (0, exports.flattenRichText)(block.bookmark.caption); case 'bulleted_list_item': return (0, exports.flattenRichText)(block.bulleted_list_item.rich_text); case 'callout': return (0, exports.flattenRichText)(block.callout.rich_text); case 'child_database': return block.child_database.title; case 'child_page': return block.child_page.title; case 'code': return (0, exports.flattenRichText)(block.code.rich_text); case 'embed': return (0, exports.flattenRichText)(block.embed.caption); case 'equation': return block.equation.expression; case 'file': return (0, exports.flattenRichText)(block.file.caption); case 'heading_1': return (0, exports.flattenRichText)(block.heading_1.rich_text); case 'heading_2': return (0, exports.flattenRichText)(block.heading_2.rich_text); case 'heading_3': return (0, exports.flattenRichText)(block.heading_3.rich_text); case 'image': return (0, exports.flattenRichText)(block.image.caption); case 'numbered_list_item': return (0, exports.flattenRichText)(block.numbered_list_item.rich_text); case 'paragraph': return (0, exports.flattenRichText)(block.paragraph.rich_text); case 'pdf': return (0, exports.flattenRichText)(block.pdf.caption); case 'quote': return (0, exports.flattenRichText)(block.quote.rich_text); case 'table_row': return (0, exports.flattenRichText)(block.table_row.cells.flat()); case 'template': return (0, exports.flattenRichText)(block.template.rich_text); case 'to_do': return (0, exports.flattenRichText)(block.to_do.rich_text); case 'toggle': return (0, exports.flattenRichText)(block.toggle.rich_text); case 'video': return (0, exports.flattenRichText)(block.video.caption); default: return ''; } }; exports.extractPlainTextFromBlock = extractPlainTextFromBlock;