Skip to content

Commit 1c78d87

Browse files
author
sheepzh
committed
Clean code
1 parent ebd43fb commit 1c78d87

File tree

5 files changed

+40
-48
lines changed

5 files changed

+40
-48
lines changed

global.d.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,4 +431,36 @@ declare namespace timer {
431431
iconUrl?: string
432432
}
433433
}
434+
435+
/**
436+
* Message queue
437+
*/
438+
namespace mq {
439+
type ReqCode =
440+
| 'openLimitPage'
441+
| 'limitTimeMeet'
442+
// @since 0.9.0
443+
| 'limitWaking'
444+
type ResCode = "success" | "fail" | "ignore"
445+
446+
/**
447+
* @since 0.2.2
448+
*/
449+
type Request<T = any> = {
450+
code: ReqCode
451+
data: T
452+
}
453+
/**
454+
* @since 0.8.4
455+
*/
456+
type Response<T = any> = {
457+
code: ResCode,
458+
msg?: string
459+
data?: T
460+
}
461+
/**
462+
* @since 0.8.4
463+
*/
464+
type Callback<T = any> = (result?: Response<T>) => void
465+
}
434466
}

src/background/message-listener.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import { getAppPageUrl } from "@util/constant/url"
99
import { LIMIT_ROUTE } from "../app/router/constants"
10-
import { ChromeMessage, ChromeResult } from "@util/message"
1110
import TimeLimitItem from "@entity/dto/time-limit-item"
1211

1312
function processLimitWaking(rules: TimeLimitItem[], tab: chrome.tabs.Tab) {
@@ -16,7 +15,7 @@ function processLimitWaking(rules: TimeLimitItem[], tab: chrome.tabs.Tab) {
1615
if (!anyMatch) {
1716
return
1817
}
19-
chrome.tabs.sendMessage<ChromeMessage<timer.limit.Item[]>, ChromeResult>(tab.id, {
18+
chrome.tabs.sendMessage<timer.mq.Request<timer.limit.Item[]>, timer.mq.Response>(tab.id, {
2019
code: "limitWaking",
2120
data: rules
2221
}, result => {
@@ -28,7 +27,7 @@ function processLimitWaking(rules: TimeLimitItem[], tab: chrome.tabs.Tab) {
2827
})
2928
}
3029

31-
function listen(message: ChromeMessage<any>, _sender: chrome.runtime.MessageSender, sendResponse: (response?: any) => void) {
30+
function listen(message: timer.mq.Request<any>, _sender: chrome.runtime.MessageSender, sendResponse: (response?: any) => void) {
3231
if (message.code === 'openLimitPage') {
3332
const url: string = message.data as string
3433
const pageUrl = getAppPageUrl(true, LIMIT_ROUTE, { url: encodeURI(url) })

src/background/timer/save.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,12 @@ import TimeLimitItem from "@entity/dto/time-limit-item"
99
import limitService from "@service/limit-service"
1010
import periodService from "@service/period-service"
1111
import timerService from "@service/timer-service"
12-
import { ChromeMessage, ChromeResult } from "@util/message"
1312
import CollectionContext from "./collection-context"
1413

1514
function sendLimitedMessage(item: TimeLimitItem[]) {
1615
chrome.tabs.query({ status: "complete" }, tabs => {
1716
tabs.forEach(tab => {
18-
chrome.tabs.sendMessage<ChromeMessage<timer.limit.Item[]>, ChromeResult>(tab.id, {
17+
chrome.tabs.sendMessage<timer.mq.Request<timer.limit.Item[]>, timer.mq.Response>(tab.id, {
1918
code: "limitTimeMeet",
2019
data: item
2120
}, result => {

src/content-script/limit.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import TimeLimitItem from "@entity/dto/time-limit-item"
99
import limitService from "@service/limit-service"
1010
import { t2Chrome } from "@util/i18n/chrome/t"
11-
import { ChromeCallback, ChromeMessage, ChromeResult } from "@util/message"
1211

1312
class _Modal {
1413
url: string
@@ -41,7 +40,7 @@ class _Modal {
4140
const wakingRules = delayRules
4241
.map(like => TimeLimitItem.of(like))
4342
.filter(rule => !rule.hasLimited())
44-
chrome.runtime.sendMessage<ChromeMessage<timer.limit.Item[]>, ChromeResult>(wakingMessage(wakingRules))
43+
chrome.runtime.sendMessage<timer.mq.Request<timer.limit.Item[]>, timer.mq.Response>(wakingMessage(wakingRules))
4544
this.hideModal()
4645
}
4746
this.delayContainer.append(link)
@@ -77,7 +76,7 @@ class _Modal {
7776
}
7877
}
7978

80-
function wakingMessage(rules: timer.limit.Item[]): ChromeMessage<timer.limit.Item[]> {
79+
function wakingMessage(rules: timer.limit.Item[]): timer.mq.Request<timer.limit.Item[]> {
8180
return { code: 'limitWaking', data: rules }
8281
}
8382

@@ -101,7 +100,7 @@ const linkStyle: Partial<CSSStyleDeclaration> = {
101100
fontSize: '16px !important'
102101
}
103102

104-
function openLimitPageMessage(url: string): ChromeMessage<string> {
103+
function openLimitPageMessage(url: string): timer.mq.Request<string> {
105104
return { code: 'openLimitPage', data: encodeURIComponent(url) }
106105
}
107106

@@ -124,7 +123,7 @@ export default async function processLimit(url: string) {
124123
if (limitedRules?.length) {
125124
window.onload = () => modal.showModal(!!limitedRules?.filter?.(item => item.allowDelay).length)
126125
}
127-
chrome.runtime.onMessage.addListener((msg: ChromeMessage<timer.limit.Item[]>, _sender, sendResponse: ChromeCallback) => {
126+
chrome.runtime.onMessage.addListener((msg: timer.mq.Request<timer.limit.Item[]>, _sender, sendResponse: timer.mq.Callback) => {
128127
if (msg.code !== "limitTimeMeet") {
129128
sendResponse({ code: "ignore" })
130129
return
@@ -138,7 +137,7 @@ export default async function processLimit(url: string) {
138137
modal.process(items)
139138
sendResponse({ code: "success" })
140139
})
141-
chrome.runtime.onMessage.addListener((msg: ChromeMessage<timer.limit.Item[]>, _sender, sendResponse: ChromeCallback) => {
140+
chrome.runtime.onMessage.addListener((msg: timer.mq.Request<timer.limit.Item[]>, _sender, sendResponse: timer.mq.Callback) => {
142141
if (msg.code !== "limitWaking") {
143142
sendResponse({ code: "ignore" })
144143
return

src/util/message/index.ts

Lines changed: 0 additions & 37 deletions
This file was deleted.

0 commit comments

Comments
 (0)