gatsby-source-notion-churnotion 1.0.13 → 1.0.14
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.
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 += `${categoryUrl.length === 0 ? "" : "/"}${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: `${categoryUrl.length === 0 ? "" : "/"}/${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.14",
|
5
5
|
"skipLibCheck": true,
|
6
6
|
"license": "0BSD",
|
7
7
|
"main": "./dist/gatsby-node.js",
|