File tree Expand file tree Collapse file tree 4 files changed +43
-2
lines changed
background/version-manager Expand file tree Collapse file tree 4 files changed +43
-2
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Copyright (c) 2022-present Hengyang Zhang
3+ *
4+ * This software is released under the MIT License.
5+ * https://opensource.org/licenses/MIT
6+ */
7+
8+ import ArchivedDatabase from "@db/archived-database"
9+ import { log } from "@src/common/logger"
10+ import IVersionProcessor from "../i-version-processor"
11+
12+ /**
13+ * All code will be removed at v1.4.0
14+ */
15+ export default class ArchivedDataCleaner implements IVersionProcessor {
16+ since ( ) : string {
17+ return '1.3.0'
18+ }
19+
20+ async process ( reason : chrome . runtime . OnInstalledReason ) : Promise < void > {
21+ const db = new ArchivedDatabase ( chrome . storage . local )
22+ if ( reason !== 'update' ) {
23+ return
24+ }
25+ const count = await db . removeAll ( )
26+ log ( `Removed ${ count } archived items` )
27+ }
28+ }
Original file line number Diff line number Diff line change @@ -21,5 +21,5 @@ export default interface IVersionProcessor {
2121 *
2222 * @param reason reason of chrome OnInstalled event
2323 */
24- process ( reason : string ) : void
24+ process ( reason : chrome . runtime . OnInstalledReason ) : void
2525}
Original file line number Diff line number Diff line change 88import IVersionProcessor from "./i-version-processor"
99import HostMergeInitializer from "./0-1-2/host-merge-initializer"
1010import LocalFileInitializer from "./0-7-0/local-file-initializer"
11+ import ArchivedDataCleaner from "./1-3-0/archived-data-cleaner"
1112
1213/**
1314 * Version manager
@@ -18,7 +19,11 @@ class VersionManager {
1819 processorChain : IVersionProcessor [ ] = [ ]
1920
2021 constructor ( ) {
21- this . processorChain . push ( new HostMergeInitializer ( ) , new LocalFileInitializer ( ) )
22+ this . processorChain . push (
23+ new HostMergeInitializer ( ) ,
24+ new LocalFileInitializer ( ) ,
25+ new ArchivedDataCleaner ( ) ,
26+ )
2227 this . processorChain = this . processorChain . sort ( ( a , b ) => a . since ( ) >= b . since ( ) ? 1 : 0 )
2328 }
2429
Original file line number Diff line number Diff line change @@ -28,6 +28,14 @@ class ArchivedDatabase extends BaseDatabase {
2828 return Promise . resolve ( result )
2929 }
3030
31+ async removeAll ( ) : Promise < number > {
32+ const items = await this . storage . get ( )
33+ const keys = Object . keys ( items )
34+ . filter ( key => key . startsWith ( ARCHIVED_PREFIX ) )
35+ await this . storage . remove ( keys )
36+ return keys ?. length || 0
37+ }
38+
3139 private generateKey ( row : timer . stat . Row ) : string {
3240 return ARCHIVED_PREFIX + row . host
3341 }
You can’t perform that action at this time.
0 commit comments