@vacantthinker/firefox-addon-framework-easy 2026.630.1239 → 2026.630.2330
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backgroundJs.d.ts +12 -0
- package/dist/backgroundJs.d.ts.map +1 -1
- package/dist/backgroundJs.js +42 -0
- package/package.json +1 -1
package/dist/backgroundJs.d.ts
CHANGED
|
@@ -9,4 +9,16 @@ export declare function bkJsCreateActionBaseHandlers<T extends string = MessageA
|
|
|
9
9
|
* Dispatcher also accepts the generic map
|
|
10
10
|
*/
|
|
11
11
|
export declare function bkJsRegisterRuntimeActionDispatcher<T extends string>(handlersMap: Map<T, ActHandlerFunc>, logTag?: string): void;
|
|
12
|
+
export type AlarmHandlerFunc = (alarm: browser.alarms.Alarm) => Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Uses <T extends string> so the app can pass its own union type.
|
|
15
|
+
* It defaults to FrameworkBaseAction if no type is passed.
|
|
16
|
+
*/
|
|
17
|
+
export declare function bkJsCreateAlarmBaseHandlers<T extends string>(): Map<T, AlarmHandlerFunc>;
|
|
18
|
+
/**
|
|
19
|
+
* Dispatcher also accepts the generic map
|
|
20
|
+
*/
|
|
21
|
+
export declare function bkJsRegisterAlarmDispatcher<T extends string>(handlersMap: Map<T, AlarmHandlerFunc>, logTag?: string): void;
|
|
22
|
+
export type AlarmSetupFunc = (name: string) => Promise<browser.alarms._CreateAlarmInfo | void>;
|
|
23
|
+
export declare function bkJsCreateAlarmSetupMap<T extends string>(): Map<T, AlarmSetupFunc>;
|
|
12
24
|
//# sourceMappingURL=backgroundJs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backgroundJs.d.ts","sourceRoot":"","sources":["../src/backgroundJs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,wBAAwB,EAA6B,MAAM,SAAS,CAAC;AAI7E,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,CAAC,SAAS,MAAM,GAAG,wBAAwB,KACzC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAmCzB;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,MAAM,EAClE,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,EACnC,MAAM,GAAE,MAAyB,QAyBlC"}
|
|
1
|
+
{"version":3,"file":"backgroundJs.d.ts","sourceRoot":"","sources":["../src/backgroundJs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,wBAAwB,EAA6B,MAAM,SAAS,CAAC;AAI7E,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,CAAC,SAAS,MAAM,GAAG,wBAAwB,KACzC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAmCzB;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,MAAM,EAClE,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,EACnC,MAAM,GAAE,MAAyB,QAyBlC;AAOD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,SAAS,MAAM,KACd,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAG3B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,EAC1D,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,EACrC,MAAM,GAAE,MAA2B,QAapC;AAKD,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAErD,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAuBlF"}
|
package/dist/backgroundJs.js
CHANGED
|
@@ -70,3 +70,45 @@ export function bkJsRegisterRuntimeActionDispatcher(handlersMap, logTag = "backg
|
|
|
70
70
|
}
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Uses <T extends string> so the app can pass its own union type.
|
|
75
|
+
* It defaults to FrameworkBaseAction if no type is passed.
|
|
76
|
+
*/
|
|
77
|
+
export function bkJsCreateAlarmBaseHandlers() {
|
|
78
|
+
const map = new Map();
|
|
79
|
+
return map;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Dispatcher also accepts the generic map
|
|
83
|
+
*/
|
|
84
|
+
export function bkJsRegisterAlarmDispatcher(handlersMap, logTag = "initialAlarm.ts ") {
|
|
85
|
+
browser.alarms.onAlarm.addListener(async (alarm) => {
|
|
86
|
+
const { name } = alarm;
|
|
87
|
+
const handler = handlersMap.get(name);
|
|
88
|
+
console.info(logTag, "name=", name, " triggered");
|
|
89
|
+
if (handler) {
|
|
90
|
+
await handler(alarm);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
console.info(logTag, "name=", name, " not match!");
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
export function bkJsCreateAlarmSetupMap() {
|
|
98
|
+
const map = new Map();
|
|
99
|
+
const originalSet = map.set.bind(map);
|
|
100
|
+
map.set = (key, originalFunc) => {
|
|
101
|
+
// 2. Wrap the function to intercept its return value
|
|
102
|
+
const wrappedFunc = async (name) => {
|
|
103
|
+
// Execute the user's complex logic to get the alarm info
|
|
104
|
+
const alarmInfo = await originalFunc(name);
|
|
105
|
+
// 3. Auto-inject the creation logic ONLY if they returned valid info
|
|
106
|
+
if (alarmInfo) {
|
|
107
|
+
await browser.alarms.create(name, alarmInfo);
|
|
108
|
+
console.info(`[Framework] Auto-created alarm: ${name}`);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
return originalSet(key, wrappedFunc);
|
|
112
|
+
};
|
|
113
|
+
return map;
|
|
114
|
+
}
|