gatsby-source-notion-churnotion 1.0.13 → 1.0.15
Sign up to get free protection for your applications and to get access to all the features.
package/dist/api/getBooks.js
CHANGED
@@ -17,10 +17,11 @@ const getBooks = async ({ bookDatabaseId, reporter, createNode, createNodeId, })
|
|
17
17
|
for (const page of result.results) {
|
18
18
|
reporter.info(`[CHECK] BOOK page: ${page.id}`);
|
19
19
|
const nodeId = createNodeId(`${page.id}-book`);
|
20
|
+
const slug = page.properties?.slug?.rich_text?.[0]?.plain_text || `unnamed-slug`;
|
20
21
|
const bookNode = {
|
21
22
|
id: nodeId,
|
22
23
|
book_name: page.properties?.[`이름`]?.title?.[0]?.plain_text || `Unnamed`,
|
23
|
-
slug:
|
24
|
+
slug: slug,
|
24
25
|
parent: null,
|
25
26
|
children: [],
|
26
27
|
internal: {
|
@@ -32,6 +33,7 @@ const getBooks = async ({ bookDatabaseId, reporter, createNode, createNodeId, })
|
|
32
33
|
},
|
33
34
|
create_date: page.created_time,
|
34
35
|
update_date: page.last_edited_time,
|
36
|
+
url: `${constants_1.COMMON_URI}/${constants_1.BOOK_URI}/${slug}`,
|
35
37
|
};
|
36
38
|
createNode(bookNode);
|
37
39
|
}
|
package/dist/api/getPages.js
CHANGED
@@ -17,7 +17,7 @@ const getPages = async ({ databaseId, reporter, getCache, actions, createNode, c
|
|
17
17
|
* @param databaseId 데이터베이스 아이디
|
18
18
|
* @param parentCategoryId 부모 데이터베이스 아이디
|
19
19
|
*/
|
20
|
-
const processDatabase = async (databaseId, parentCategoryId = null, categoryPath = [], tagMap = {}) => {
|
20
|
+
const processDatabase = async (databaseId, parentCategoryId = null, categoryPath = [], tagMap = {}, categoryUrl = ``) => {
|
21
21
|
try {
|
22
22
|
while (hasMore) {
|
23
23
|
const databaseUrl = `databases/${databaseId}/query`;
|
@@ -34,16 +34,17 @@ const getPages = async ({ databaseId, reporter, getCache, actions, createNode, c
|
|
34
34
|
if (pageData.results[0].type === `child_database`) {
|
35
35
|
const categoryJsonData = pageData.results[0];
|
36
36
|
const title = categoryJsonData.child_database?.title || `Unnamed Category`;
|
37
|
-
const slug = (0, slugify_1.slugify)(title)
|
37
|
+
const slug = (0, slugify_1.slugify)(title) || `no-title-${categoryJsonData.id}`;
|
38
38
|
if (!title) {
|
39
39
|
reporter.warn(`[WARNING] Category without a title detected: ${categoryJsonData.id}`);
|
40
40
|
}
|
41
41
|
const nodeId = createNodeId(`${categoryJsonData.id}-category`);
|
42
|
+
categoryUrl += `/${slug}`;
|
42
43
|
const categoryNode = {
|
43
44
|
id: nodeId,
|
44
45
|
category_name: title,
|
45
46
|
parent: parentCategoryId,
|
46
|
-
slug: slug
|
47
|
+
slug: slug,
|
47
48
|
children: [],
|
48
49
|
internal: {
|
49
50
|
type: constants_1.NODE_TYPE.Category,
|
@@ -52,6 +53,7 @@ const getPages = async ({ databaseId, reporter, getCache, actions, createNode, c
|
|
52
53
|
.update(JSON.stringify(categoryJsonData))
|
53
54
|
.digest(`hex`),
|
54
55
|
},
|
56
|
+
url: `${constants_1.COMMON_URI}${constants_1.CATEGORY_URI}/${categoryUrl}`,
|
55
57
|
};
|
56
58
|
createNode(categoryNode);
|
57
59
|
if (parentCategoryId && categoryNode) {
|
@@ -68,7 +70,7 @@ const getPages = async ({ databaseId, reporter, getCache, actions, createNode, c
|
|
68
70
|
}
|
69
71
|
}
|
70
72
|
const newCategoryPath = [...categoryPath, categoryNode];
|
71
|
-
await processDatabase(categoryJsonData.id, nodeId, newCategoryPath, tagMap);
|
73
|
+
await processDatabase(categoryJsonData.id, nodeId, newCategoryPath, tagMap, categoryUrl);
|
72
74
|
}
|
73
75
|
else {
|
74
76
|
// 페이지인 경우
|
@@ -97,10 +99,12 @@ const getPages = async ({ databaseId, reporter, getCache, actions, createNode, c
|
|
97
99
|
const tagNodeId = createNodeId(`${tagData.id}-tag`);
|
98
100
|
tagMap[tagData.name] = tagNodeId; // tagMap에 저장
|
99
101
|
tagIds.push(tagNodeId); // 새로운 태그 ID 추가
|
102
|
+
const slug = (0, slugify_1.slugify)(tagData.name) || `no-tag-${tagNodeId}`;
|
100
103
|
// 태그 노드 생성
|
101
104
|
const tagNode = {
|
102
105
|
id: tagNodeId,
|
103
106
|
tag_name: tagData.name,
|
107
|
+
slug: slug,
|
104
108
|
color: tagData.color,
|
105
109
|
children: [],
|
106
110
|
internal: {
|
@@ -110,6 +114,9 @@ const getPages = async ({ databaseId, reporter, getCache, actions, createNode, c
|
|
110
114
|
.update(JSON.stringify(tagData))
|
111
115
|
.digest(`hex`),
|
112
116
|
},
|
117
|
+
url: `${constants_1.COMMON_URI}/${constants_1.TAG_URI}/${slug}`,
|
118
|
+
churnotions: [],
|
119
|
+
parent: null,
|
113
120
|
};
|
114
121
|
createNode(tagNode);
|
115
122
|
reporter.info(`[SUCCESS] Created new tag: ${tagData.name}`);
|
@@ -130,7 +137,7 @@ const getPages = async ({ databaseId, reporter, getCache, actions, createNode, c
|
|
130
137
|
update_date: page.last_edited_time,
|
131
138
|
version: page.properties?.version?.number || null,
|
132
139
|
description: null,
|
133
|
-
slug: slug
|
140
|
+
slug: slug,
|
134
141
|
category_list: categoryPath,
|
135
142
|
children: [],
|
136
143
|
internal: {
|
@@ -142,6 +149,7 @@ const getPages = async ({ databaseId, reporter, getCache, actions, createNode, c
|
|
142
149
|
},
|
143
150
|
tags: tagIds,
|
144
151
|
parent: null,
|
152
|
+
url: `${constants_1.COMMON_URI}${categoryUrl}/${slug}`,
|
145
153
|
};
|
146
154
|
await createNode(postNode);
|
147
155
|
// book과 post 부모-자식 관계 설정
|
package/dist/constants.d.ts
CHANGED
@@ -7,3 +7,8 @@ export declare const NODE_TYPE: {
|
|
7
7
|
Tag: string;
|
8
8
|
Book: string;
|
9
9
|
};
|
10
|
+
export declare const COMMON_URI = "blog";
|
11
|
+
export declare const POST_URI = "post";
|
12
|
+
export declare const BOOK_URI = "book";
|
13
|
+
export declare const TAG_URI = "tag";
|
14
|
+
export declare const CATEGORY_URI = "category";
|
package/dist/constants.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.NODE_TYPE = exports.PLUGIN_NAME = exports.NOTION_LIMIT_ERROR = exports.NOTION_API_VERSION = void 0;
|
3
|
+
exports.CATEGORY_URI = exports.TAG_URI = exports.BOOK_URI = exports.POST_URI = exports.COMMON_URI = exports.NODE_TYPE = exports.PLUGIN_NAME = exports.NOTION_LIMIT_ERROR = exports.NOTION_API_VERSION = void 0;
|
4
4
|
exports.NOTION_API_VERSION = `2022-06-28`;
|
5
5
|
exports.NOTION_LIMIT_ERROR = 429;
|
6
6
|
exports.PLUGIN_NAME = `gatsby-source-notion-churnotion`;
|
@@ -11,3 +11,9 @@ exports.NODE_TYPE = {
|
|
11
11
|
Tag: `NTag`,
|
12
12
|
Book: `NBook`,
|
13
13
|
};
|
14
|
+
///////////////url resource///////////////////////
|
15
|
+
exports.COMMON_URI = `blog`;
|
16
|
+
exports.POST_URI = `post`;
|
17
|
+
exports.BOOK_URI = `book`;
|
18
|
+
exports.TAG_URI = `tag`;
|
19
|
+
exports.CATEGORY_URI = `category`;
|
@@ -19,13 +19,16 @@ const createSchemaCustomization = ({ actions }) => {
|
|
19
19
|
description: String
|
20
20
|
slug: String
|
21
21
|
category_list: [${constants_1.NODE_TYPE.Category}]
|
22
|
+
url: String!
|
22
23
|
}
|
23
24
|
|
24
25
|
type ${constants_1.NODE_TYPE.Tag} implements Node {
|
25
26
|
id: ID!
|
26
27
|
tag_name: String!
|
28
|
+
slug: String!
|
27
29
|
color: String!
|
28
30
|
children: [${constants_1.NODE_TYPE.Post}] @link(by: "id", from: "tags")
|
31
|
+
url: String!
|
29
32
|
}
|
30
33
|
|
31
34
|
type ${constants_1.NODE_TYPE.Category} implements Node {
|
@@ -35,6 +38,7 @@ const createSchemaCustomization = ({ actions }) => {
|
|
35
38
|
slug: String!
|
36
39
|
children: [${constants_1.NODE_TYPE.Category}!]! @link(by: "parent")
|
37
40
|
churnotions: [${constants_1.NODE_TYPE.Post}] @link(by: "book", from: "id")
|
41
|
+
url: String!
|
38
42
|
}
|
39
43
|
|
40
44
|
type ${constants_1.NODE_TYPE.Book} implements Node {
|
@@ -43,6 +47,7 @@ const createSchemaCustomization = ({ actions }) => {
|
|
43
47
|
create_date: Date! @dateformat
|
44
48
|
update_date: Date! @dateformat
|
45
49
|
children: [${constants_1.NODE_TYPE.Post}] @link(by: "book", from: "id")
|
50
|
+
url: String!
|
46
51
|
}
|
47
52
|
`);
|
48
53
|
};
|
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.
|
4
|
+
"version": "1.0.15",
|
5
5
|
"skipLibCheck": true,
|
6
6
|
"license": "0BSD",
|
7
7
|
"main": "./dist/gatsby-node.js",
|