Skip to content

Commit e7456c8

Browse files
committed
feat: support IndexedDB (#656)
1 parent 034df42 commit e7456c8

File tree

80 files changed

+1857
-918
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+1857
-918
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
"echarts": "^6.0.0",
6666
"element-plus": "2.13.2",
6767
"punycode": "^2.3.1",
68+
"typescript-guard": "^0.2.1",
6869
"vue": "^3.5.28",
6970
"vue-router": "^5.0.3"
7071
},

rspack/rspack.common.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ const generateJsonPlugins: RspackPluginInstance[] = []
1515

1616
const localeJsonFiles = Object.entries(i18nChrome)
1717
.map(([locale, message]) => new GenerateJsonPlugin(`_locales/${locale}/messages.json`, message))
18-
.map(plugin => plugin as unknown as RspackPluginInstance)
1918
generateJsonPlugins.push(...localeJsonFiles)
2019

2120
type EntryConfig = {

src/background/data-cleaner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const cleanPeriodData = async () => {
1616
export default function initDataCleaner() {
1717
alarmManager.setWhen(
1818
PERIOD_ALARM_NAME,
19-
() => getStartOfDay(new Date()).getTime() + MILL_PER_DAY,
19+
() => getStartOfDay(new Date()) + MILL_PER_DAY,
2020
cleanPeriodData,
2121
)
2222
}

src/background/limit-processor.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ function initDailyBroadcast() {
4646
// Broadcast rules at the start of each day
4747
alarmManager.setWhen(
4848
'limit-daily-broadcast',
49-
() => {
50-
const startOfThisDay = getStartOfDay(new Date())
51-
return startOfThisDay.getTime() + MILL_PER_DAY
52-
},
49+
() => getStartOfDay(new Date()) + MILL_PER_DAY,
5350
() => limitService.broadcastRules(),
5451
)
5552
}

src/background/message-dispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class MessageDispatcher {
3333
const result = await handler(message.data, sender)
3434
return { code: 'success', data: result }
3535
} catch (error) {
36-
const msg = (error as Error)?.message ?? error?.toString?.()
36+
const msg = error instanceof Error ? error.message : error?.toString?.()
3737
return { code: 'fail', msg }
3838
}
3939
}

src/background/migrator/cate-initializer.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import cateService from "@service/cate-service"
22
import { batchSaveSiteCate } from "@service/site-service"
3-
import { Migrator } from "./common"
3+
import type { Migrator } from "./types"
44

55
type InitialCate = {
66
name: string
@@ -44,7 +44,6 @@ export default class CateInitializer implements Migrator {
4444
}
4545
}
4646

47-
onUpdate(version: string): void {
48-
version === '3.0.1' && this.onInstall()
47+
onUpdate(_version: string): void {
4948
}
5049
}

src/background/migrator/host-merge-initializer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*/
77

88
import mergeRuleDatabase from "@db/merge-rule-database"
9-
import { type Migrator } from "./common"
9+
import type { Migrator } from "./types"
1010

1111
/**
1212
* v0.1.2

src/background/migrator/index.ts

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

88
import { getVersion, onInstalled } from "@api/chrome/runtime"
99
import CateInitializer from "./cate-initializer"
10-
import { type Migrator } from "./common"
1110
import HostMergeInitializer from "./host-merge-initializer"
12-
import LimitRuleMigrator from "./limit-rule-migrator"
11+
import IndexedDBMigrator from './indexed-migrator'
1312
import LocalFileInitializer from "./local-file-initializer"
13+
import type { Migrator } from "./types"
1414
import WhitelistInitializer from "./whitelist-initializer"
1515

1616
/**
@@ -27,7 +27,7 @@ class VersionManager {
2727
new LocalFileInitializer(),
2828
new WhitelistInitializer(),
2929
new CateInitializer(),
30-
new LimitRuleMigrator(),
30+
new IndexedDBMigrator(),
3131
)
3232
}
3333

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import timelineDatabase from '@db/timeline-database'
2+
import type { Migrator } from './types'
3+
4+
class IndexedMigrator implements Migrator {
5+
onInstall(): void {
6+
}
7+
onUpdate(_version: string): void {
8+
timelineDatabase.migrateFromClassic()
9+
.then(() => console.log('Timeline data migrated to IndexedDB'))
10+
.catch(e => console.error('Failed to migrate timeline data to IndexedDB', e))
11+
}
12+
}
13+
14+
export default IndexedMigrator

src/background/migrator/limit-rule-migrator.ts

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

0 commit comments

Comments
 (0)