UNPKG

create-chuntianxiaozhu

Version:

春天小猪模板工具

77 lines (68 loc) 1.9 kB
import { BackgroundOnEvent, RightClickEvent } from "./modules"; import { apiRequest } from "./utils/api"; chrome.runtime.onInstalled.addListener(() => { RightClickEvent.forEach((item) => { chrome.contextMenus.create({ id: item.id, title: item.title, contexts: item.contexts, }); }); }); chrome.tabs.onUpdated.addListener((_tabId, _changeInfo, tab) => { console.log(`Change URL: ${tab.url}`); }); chrome.tabs.onRemoved.addListener((_tabId, removeInfo) => { console.log(removeInfo); }); chrome.bookmarks.getRecent(10, (results) => { console.log(`bookmarks:`, results); }); chrome.contextMenus.onClicked.addListener((clickData) => { // 如果点击的是搜索淘宝店铺且选中文字了 const item = RightClickEvent.find((item) => item.id == clickData.menuItemId); if (item) { item.event(clickData); } }); chrome.runtime.onMessage.addListener( (request: Message, _sender, sendResponse) => { const { type, data } = request; if (type == "apiRequest") { // API请求成功的回调 data.success = (result: any) => { sendResponse({ status: 200, data: result, }); }; // API请求失败的回调 data.fail = (msg: any) => { sendResponse({ status: 500, msg, }); }; // 发起请求 apiRequest(data as any); } else { // 检测后台事件 const eventItem = BackgroundOnEvent.find((item) => item.type == type); eventItem ?.event(data) .then((result) => { sendResponse && sendResponse(result); }) .catch(() => { // TODO 捕获错误,避免太多错误堆栈 // 如果错误直接数据置null sendResponse && sendResponse({ error: true, }); }); } return true; } ); export {};