Skip to content

Commit 528685d

Browse files
committed
refactor: split background.ts functions
1 parent 8d51a80 commit 528685d

File tree

1 file changed

+82
-83
lines changed

1 file changed

+82
-83
lines changed

src/background/index.ts

+82-83
Original file line numberDiff line numberDiff line change
@@ -3,87 +3,96 @@ import { Storage } from "@plasmohq/storage"
33
import { checkSaveConflict } from "~api/checkSaveConflict"
44
import { generateToken } from "~api/generateToken"
55
import { getDatabase } from "~api/getDatabase"
6-
import { getToken } from "~api/getToken"
76
import { saveChat } from "~api/saveChat"
87
import { searchNotion } from "~api/search"
9-
import { formatDB } from "~utils/functions/notion"
10-
import type { AutosaveStatus, StoredDatabase } from "~utils/types"
8+
import type { AutosaveStatus } from "~utils/types"
9+
10+
import {
11+
authenticate,
12+
refreshContentScripts,
13+
refreshDatabases,
14+
refreshIcons,
15+
saveFromContextMenu
16+
} from "./functions"
1117

1218
// API calls that can be made from content scripts transit trough the background script
1319
// This is done to prevent CORS errors
14-
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
15-
switch (message.type) {
16-
case "search":
17-
searchNotion(message.body.query)
18-
.then((res) => {
19-
sendResponse(res)
20-
})
21-
.catch((err) => {
22-
console.error(err)
23-
sendResponse({ err })
24-
})
25-
break
26-
case "checkSaveConflict":
27-
checkSaveConflict(message.body)
28-
.then((res) => {
29-
sendResponse(res)
30-
})
31-
.catch((err) => {
32-
console.error(err)
33-
sendResponse({ err })
34-
})
35-
break
36-
case "saveChat":
37-
saveChat(message.body)
38-
.then((res) => {
39-
sendResponse(res)
40-
})
41-
.catch((err) => {
42-
console.error(err)
43-
sendResponse({ err })
20+
// Functions here aren't decoupled from the background script because of odd behavior with sendResponse
21+
chrome.runtime.onMessageExternal.addListener(
22+
(message, sender, sendResponse) => {
23+
switch (message.type) {
24+
case "chatgpt-to-notion_search":
25+
searchNotion(message.body.query)
26+
.then((res) => {
27+
sendResponse(res)
28+
})
29+
.catch((err) => {
30+
console.error(err)
31+
sendResponse({ err })
32+
})
33+
break
34+
case "chatgpt-to-notion_checkSaveConflict":
35+
checkSaveConflict(message.body)
36+
.then((res) => {
37+
sendResponse(res)
38+
})
39+
.catch((err) => {
40+
console.error(err)
41+
sendResponse({ err })
42+
})
43+
break
44+
case "chatgpt-to-notion_saveChat":
45+
saveChat(message.body)
46+
.then((res) => {
47+
sendResponse(res)
48+
})
49+
.catch((err) => {
50+
console.error(err)
51+
sendResponse({ err })
52+
})
53+
break
54+
case "chatgpt-to-notion_autoSave":
55+
const storage = new Storage()
56+
saveChat(message.body)
57+
.then((res) => {
58+
sendResponse(res)
59+
storage.set("autosaveStatus", "saved" as AutosaveStatus)
60+
})
61+
.catch((err) => {
62+
storage.set("autosaveStatus", "error" as AutosaveStatus)
63+
console.error(err)
64+
sendResponse({ err })
65+
})
66+
break
67+
case "chatgpt-to-notion_generateToken":
68+
// using two means of checking if user is logged in just to be sure
69+
const session = new Storage({
70+
area: "session",
71+
secretKeyList: ["token"]
4472
})
45-
break
46-
case "autoSave":
47-
const storage = new Storage()
48-
saveChat(message.body)
49-
.then((res) => {
50-
sendResponse(res)
51-
storage.set("autosaveStatus", "saved" as AutosaveStatus)
73+
session.get("token").then((token) => {
74+
if (token) return
75+
generateToken(message.body.code).then((res) => {
76+
sendResponse(res)
77+
})
5278
})
53-
.catch((err) => {
54-
storage.set("autosaveStatus", "error" as AutosaveStatus)
55-
console.error(err)
56-
sendResponse({ err })
57-
})
58-
break
59-
case "generateToken":
60-
// using two means of checking if user is logged in just to be sure
61-
const session = new Storage({
62-
area: "session",
63-
secretKeyList: ["token"]
64-
})
65-
session.get("token").then((token) => {
66-
if (token) return
67-
generateToken(message.body.code).then((res) => {
68-
sendResponse(res)
69-
})
70-
})
71-
break
72-
case "getDB":
73-
getDatabase(message.body.id)
74-
.then((res) => {
75-
sendResponse(res)
76-
})
77-
.catch((err) => {
78-
console.error(err)
79-
sendResponse({ err })
80-
})
81-
break
82-
default:
83-
return true
79+
break
80+
case "chatgpt-to-notion_getDB":
81+
getDatabase(message.body.id)
82+
.then((res) => {
83+
sendResponse(res)
84+
})
85+
.catch((err) => {
86+
console.error(err)
87+
sendResponse({ err })
88+
})
89+
break
90+
default:
91+
return true
92+
}
93+
return true
8494
}
85-
return true
86-
})
95+
)
8796

8897
chrome.runtime.onInstalled.addListener(() => {
8998
refreshContentScripts()
@@ -99,16 +108,6 @@ chrome.runtime.onInstalled.addListener(() => {
99108
targetUrlPatterns: ["https://chat.openai.com/*"]
100109
})
101110
})
102-
await Promise.all([
103-
session.set("token", token),
104-
storage.set("isPremium", isPremium),
105-
storage.set("activeTrial", activeTrial && trial_end),
106-
storage.set("trialEnd", trial_end ?? 0),
107-
storage.set("authenticated", true)
108-
])
109-
console.log("authenticated")
110-
return true
111-
}
112111

113112
chrome.contextMenus.onClicked.addListener(({ menuItemId }) => {
114113
saveFromContextMenu(menuItemId as "append" | "override")

0 commit comments

Comments
 (0)