gatsby-source-notion-churnotion 1.0.46 → 1.0.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,6 @@ const constants_1 = require("../constants");
9
9
  const fetchData_1 = require("../util/fetchData");
10
10
  const imageProcessor_1 = require("../util/imageProcessor");
11
11
  const slugify_1 = require("../util/slugify");
12
- const connector_1 = require("./connector");
13
12
  const getPages = async ({ databaseId, reporter, getCache, actions, createNode, createNodeId, createParentChildLink, getNode, }) => {
14
13
  /**
15
14
  * 데이터베이스 내에 페이지들을 읽어서 재귀적으로 추가하는 서브 메서드드
@@ -141,22 +140,14 @@ const getPages = async ({ databaseId, reporter, getCache, actions, createNode, c
141
140
  });
142
141
  }
143
142
  const bookId = page.properties?.book?.relation?.[0]?.id || null;
144
- const markdownContent = await connector_1.n2m.pageToMarkdown(page.id);
145
- const imageNode = await (0, imageProcessor_1.processBlocks)(markdownContent, actions, getCache, createNodeId, reporter);
146
- const gatsbyImageData = {
147
- childImageSharp: {
148
- gatsbyImageData: imageNode
149
- ? `childImageSharp___NODE___${imageNode}`
150
- : null,
151
- },
152
- };
143
+ const imageNode = await (0, imageProcessor_1.processBlocks)(pageData.results, actions, getCache, createNodeId, reporter);
153
144
  const postNode = {
154
145
  id: nodeId,
155
146
  category: parentCategoryId,
156
147
  book: getNode(`${bookId}-book`),
157
148
  book_index: page.properties?.bookIndex?.number || 0,
158
149
  title: title,
159
- content: markdownContent,
150
+ content: pageData.results,
160
151
  create_date: page.created_time,
161
152
  update_date: page.last_edited_time,
162
153
  version: page.properties?.version?.number || null,
@@ -1,3 +1,3 @@
1
1
  import { Actions, GatsbyCache, Reporter } from "gatsby";
2
- import { MdBlock } from "notion-to-md/build/types";
3
- export declare const processBlocks: (blocks: MdBlock[], actions: Actions, getCache: (this: void, id: string) => GatsbyCache, createNodeId: (this: void, input: string) => string, reporter: Reporter) => Promise<string | null>;
2
+ import { BaseContentBlock } from "notion-types";
3
+ export declare const processBlocks: (blocks: BaseContentBlock[], actions: Actions, getCache: (this: void, id: string) => GatsbyCache, createNodeId: (this: void, input: string) => string, reporter: Reporter) => Promise<string | null>;
@@ -2,36 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.processBlocks = void 0;
4
4
  const gatsby_source_filesystem_1 = require("gatsby-source-filesystem");
5
+ // Type Guard
6
+ function isImageBlock(block) {
7
+ return block.type === "image" && "image" in block;
8
+ }
5
9
  const processBlocks = async (blocks, actions, getCache, createNodeId, reporter) => {
6
10
  const { createNode } = actions;
7
11
  let thumbnail = null;
8
12
  for (const block of blocks) {
9
- if (block.type === `image` &&
10
- typeof block.parent === `string` &&
11
- block.parent.includes(`http`)) {
12
- const match = block.parent.match(/\((https?:\/\/.*?)\)/);
13
- if (match) {
14
- const imageUrl = match[1];
15
- reporter.info(`[Image] got image > ${imageUrl}`);
16
- try {
17
- const fileNode = await (0, gatsby_source_filesystem_1.createRemoteFileNode)({
18
- url: imageUrl,
19
- parentNodeId: block.blockId,
20
- getCache,
21
- createNode,
22
- createNodeId,
23
- });
24
- if (fileNode) {
25
- block.parent = fileNode.id;
26
- if (!thumbnail)
27
- thumbnail = fileNode.id;
28
- reporter.info(`[SUCCESS] Image processed: ${fileNode.id}`);
29
- }
30
- }
31
- catch (error) {
32
- reporter.warn(`[WARNING] Failed to download image: ${imageUrl}`);
13
+ if (isImageBlock(block) && block?.image?.file?.url) {
14
+ const imageUrl = block.image.file.url;
15
+ reporter.info(`[Image] got image > ${imageUrl}`);
16
+ try {
17
+ const fileNode = await (0, gatsby_source_filesystem_1.createRemoteFileNode)({
18
+ url: imageUrl,
19
+ parentNodeId: block.id,
20
+ getCache,
21
+ createNode,
22
+ createNodeId,
23
+ });
24
+ if (fileNode) {
25
+ block.image.file.url = fileNode.id;
26
+ if (!thumbnail)
27
+ thumbnail = fileNode.id;
28
+ reporter.info(`[SUCCESS] Image processed: ${fileNode.id}`);
33
29
  }
34
30
  }
31
+ catch (error) {
32
+ reporter.warn(`[WARNING] Failed to download image: ${imageUrl}`);
33
+ }
35
34
  }
36
35
  }
37
36
  return thumbnail;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gatsby-source-notion-churnotion",
3
3
  "description": "Gatsby plugin that can connect with One Notion Database RECURSIVELY using official API",
4
- "version": "1.0.46",
4
+ "version": "1.0.48",
5
5
  "skipLibCheck": true,
6
6
  "license": "0BSD",
7
7
  "main": "./dist/gatsby-node.js",
@@ -42,6 +42,7 @@
42
42
  "gatsby-transformer-sharp": "^5.14.0",
43
43
  "node-fetch": "^3.3.2",
44
44
  "notion-to-md": "^3.1.1",
45
+ "notion-types": "^7.1.5",
45
46
  "typescript": "^5.7.2"
46
47
  },
47
48
  "devDependencies": {