@authduo/authduo
Version:
Free User-sovereign Authentication for the World
33 lines (25 loc) • 679 B
text/typescript
import {PostMessenger} from "renraku"
import {AppFns} from "./app-fns.js"
import {Purpose} from "../logic/purpose.js"
import {makePopupFns, PopupState} from "./popup-fns.js"
export function setupInPopup(
appWindow: WindowProxy,
popupWindow: Window,
setLoginPurpose: (purpose: Purpose.Login) => void
) {
const state: PopupState = {parentOrigin: "*"}
const peer = new PostMessenger<AppFns>({
local: {
window: popupWindow,
getFns: (event, app) => makePopupFns(event, state, app, setLoginPurpose),
},
remote: {
window: appWindow,
getOrigin: () => state.parentOrigin,
},
})
return {
dispose: peer.dispose,
appFns: peer.remote as AppFns,
}
}