const steam = new SteamUser({
webCompatibilityMode: true
});
steam.on("debug", (msg) => {
console.log('Steam deug: ', msg)
});
let currentUser = null;
let currentLoginPromise: Promise<unknown> | null = null;
const login = () => {
if (!currentLoginPromise) {
currentLoginPromise = new Promise((resolve, reject) => {
if (currentUser) {
resolve(currentUser);
return;
}
console.log('Steam: Start login')
steam.logOn();
steam.on("loggedOn", (detail) => {
resolve(detail);
currentUser = detail;
console.log('Steam: login successfully', detail)
});
steam.on("error", (error) => {
reject(error);
console.log('Steam: failed to login')
});
});
}
return currentLoginPromise;
};
await login()
I simply wrape the steam.logOn in a custom login method, it will return a promise that will resolve if login successfully.