@authduo/authduo
Version:
Free User-sovereign Authentication for the World
31 lines (25 loc) • 628 B
text/typescript
import {PostMessenger} from "renraku"
import {PopupFns} from "./popup-fns.js"
import {makeAppFns} from "./app-fns.js"
import {LoginTokens} from "../../auth/tokens/types.js"
export function setupInApp(
appWindow: Window,
popupWindow: WindowProxy,
popupOrigin: string,
handleLogin: (tokens: LoginTokens) => void,
) {
const peer = new PostMessenger<PopupFns>({
local: {
window: appWindow,
getFns: (_event, popup) => makeAppFns(handleLogin, popup),
},
remote: {
window: popupWindow,
getOrigin: () => popupOrigin,
},
})
return {
dispose: peer.dispose,
popupFns: peer.remote as PopupFns,
}
}