import { isSignedIn, signOut, startAuth } from "../services/auth" import { performSync } from "../services/kindle" const processMessage = ({type, args}: {type: string, args: any}):any => { switch (type) { case 'kindle-sync': return performSync() case 'sign-out': return signOut() case 'sign-in': signOut() return startAuth() case 'is-signed-in': return isSignedIn() default: throw new Error(`undefined message type: ${type}`) } } chrome.runtime.onMessage.addListener( (request, sender, sendResponse) => { const result = processMessage(request) if (typeof result?.then === 'function') { result.then(sendResponse) return true } else { sendResponse(result) } } );