import type * as odd from "@oddjs/odd";
import { getRecoil } from "recoil-nexus";
import { sessionStore } from "../../stores";
export const createAccountLinkingConsumer = async (
username: string
): Promise<odd.AccountLinkingConsumer> => {
const session = getRecoil(sessionStore)
if (session.authStrategy) return session.authStrategy.accountConsumer(username);
// Wait for program to be initialised
return new Promise(function (resolve) {
(function waitForAuthStrategy() {
const updatedSession = getRecoil(sessionStore);
if (updatedSession.authStrategy) {
return resolve(updatedSession.authStrategy.accountConsumer(username));
}
setTimeout(waitForAuthStrategy, 30);
})();
});
};
export const createAccountLinkingProducer = async (
username: string
): Promise<odd.AccountLinkingProducer> => {
const session = getRecoil(sessionStore);
return session.authStrategy.accountProducer(username);
};