@@ -12,6 +12,7 @@ import type {
12
12
} from '../wrapper/TimerWrapper.ts' ;
13
13
14
14
type TPanelKey =
15
+ | 'callsSummary'
15
16
| 'eval'
16
17
| 'media'
17
18
| 'activeTimers'
@@ -24,19 +25,20 @@ type TPanelKey =
24
25
| 'requestIdleCallback'
25
26
| 'cancelIdleCallback' ;
26
27
export type TPanelMap = {
27
- [ K in TPanelKey ] : TSettingsPanel ;
28
+ [ K in TPanelKey ] : TPanel ;
28
29
} ;
29
- export type TSettingsPanel = {
30
+ export type TPanel = {
30
31
key : TPanelKey ;
31
32
label : string ;
32
33
visible : boolean ;
33
34
wrap : boolean | null ;
34
35
} ;
35
- export type TSettings = typeof DEFAULT_SETTINGS ;
36
- export type TSettingsProperty = Partial < TSettings > ;
36
+ export type TConfig = typeof DEFAULT_CONFIG ;
37
+ export type TConfigField = Partial < TConfig > ;
37
38
38
- const SETTINGS_VERSION = '1.2.0' ;
39
- export const DEFAULT_PANELS : TSettingsPanel [ ] = [
39
+ const CONFIG_VERSION = '2025-04-25' ;
40
+ export const DEFAULT_PANELS : TPanel [ ] = [
41
+ { key : 'callsSummary' , label : 'Calls Summary' , visible : false , wrap : null } ,
40
42
{ key : 'media' , label : 'Media' , visible : true , wrap : null } ,
41
43
{ key : 'activeTimers' , label : 'Active Timers' , visible : true , wrap : null } ,
42
44
{ key : 'eval' , label : 'eval' , visible : true , wrap : false } ,
@@ -97,29 +99,29 @@ export enum ESortOrder {
97
99
export const DEFAULT_SORT_SET_TIMERS = {
98
100
field : < keyof TSetTimerHistory > 'calls' ,
99
101
order : < ESortOrder > ESortOrder . DESCENDING ,
100
- } as const ;
102
+ } ;
101
103
export const DEFAULT_SORT_CLEAR_TIMERS = {
102
104
field : < keyof TClearTimerHistory > 'calls' ,
103
105
order : < ESortOrder > ESortOrder . DESCENDING ,
104
- } as const ;
106
+ } ;
105
107
export const DEFAULT_SORT_RAF = {
106
108
field : < keyof TRequestAnimationFrameHistory > 'calls' ,
107
109
order : < ESortOrder > ESortOrder . DESCENDING ,
108
- } as const ;
110
+ } ;
109
111
export const DEFAULT_SORT_CAF = {
110
112
field : < keyof TCancelAnimationFrameHistory > 'calls' ,
111
113
order : < ESortOrder > ESortOrder . DESCENDING ,
112
- } as const ;
114
+ } ;
113
115
export const DEFAULT_SORT_RIC = {
114
116
field : < keyof TRequestIdleCallbackHistory > 'calls' ,
115
117
order : < ESortOrder > ESortOrder . DESCENDING ,
116
- } as const ;
118
+ } ;
117
119
export const DEFAULT_SORT_CIC = {
118
120
field : < keyof TCancelIdleCallbackHistory > 'calls' ,
119
121
order : < ESortOrder > ESortOrder . DESCENDING ,
120
- } as const ;
122
+ } ;
121
123
122
- export const DEFAULT_SETTINGS = {
124
+ export const DEFAULT_CONFIG = {
123
125
panels : DEFAULT_PANELS ,
124
126
sortSetTimers : DEFAULT_SORT_SET_TIMERS ,
125
127
sortClearTimers : DEFAULT_SORT_CLEAR_TIMERS ,
@@ -133,44 +135,44 @@ export const DEFAULT_SETTINGS = {
133
135
keepAwake : false ,
134
136
} ;
135
137
136
- export function panelsArray2Map ( panels : TSettingsPanel [ ] ) {
138
+ export function panelsArray2Map ( panels : TPanel [ ] ) {
137
139
return panels . reduce (
138
140
( acc , o ) => Object . assign ( acc , { [ o . key ] : o } ) ,
139
141
{ } as TPanelMap ,
140
142
) ;
141
143
}
142
144
143
- export async function getSettings ( ) : Promise < TSettings > {
144
- let store = await chrome . storage . local . get ( [ SETTINGS_VERSION ] ) ;
145
+ export async function loadLocalStorage ( ) : Promise < TConfig > {
146
+ let store = await chrome . storage . local . get ( [ CONFIG_VERSION ] ) ;
145
147
const isEmpty = ! Object . keys ( store ) . length ;
146
148
147
149
if ( isEmpty ) {
148
- await chrome . storage . local . clear ( ) ; // rid off previous version settings
149
- await chrome . storage . local . set ( { [ SETTINGS_VERSION ] : DEFAULT_SETTINGS } ) ;
150
- store = await chrome . storage . local . get ( [ SETTINGS_VERSION ] ) ;
150
+ await chrome . storage . local . clear ( ) ; // reset previous version
151
+ await chrome . storage . local . set ( { [ CONFIG_VERSION ] : DEFAULT_CONFIG } ) ;
152
+ store = await chrome . storage . local . get ( [ CONFIG_VERSION ] ) ;
151
153
}
152
154
153
- return store [ SETTINGS_VERSION ] ;
155
+ return store [ CONFIG_VERSION ] ;
154
156
}
155
157
156
- export async function setSettings ( value : TSettingsProperty ) {
157
- const store = await chrome . storage . local . get ( [ SETTINGS_VERSION ] ) ;
158
+ export async function saveLocalStorage ( value : TConfigField ) {
159
+ const store = await chrome . storage . local . get ( [ CONFIG_VERSION ] ) ;
158
160
159
- Object . assign ( store [ SETTINGS_VERSION ] , value ) ;
161
+ Object . assign ( store [ CONFIG_VERSION ] , value ) ;
160
162
161
163
return await chrome . storage . local . set ( store ) ;
162
164
}
163
165
164
- export function onSettingsChange (
165
- callback : ( newValue : TSettings , oldValue : TSettings ) => void ,
166
+ export function onLocalStorageChange (
167
+ callback : ( newValue : TConfig , oldValue : TConfig ) => void ,
166
168
) {
167
169
chrome . storage . local . onChanged . addListener ( ( change ) => {
168
170
if (
169
- change && change [ SETTINGS_VERSION ] && change [ SETTINGS_VERSION ] . newValue
171
+ change && change [ CONFIG_VERSION ] && change [ CONFIG_VERSION ] . newValue
170
172
) {
171
173
callback (
172
- change [ SETTINGS_VERSION ] . newValue ,
173
- change [ SETTINGS_VERSION ] . oldValue ,
174
+ change [ CONFIG_VERSION ] . newValue ,
175
+ change [ CONFIG_VERSION ] . oldValue ,
174
176
) ;
175
177
}
176
178
} ) ;
0 commit comments