1
2
3
4
5
6
7
8
9
10
11
12
13
import { spotifyRefreshToken } from "https://esm.town/v/stevekrouse/spotifyRefreshToken";
import { spotifyTokens } from "https://esm.town/v/stevekrouse/spotifyTokens";
export let spotifyGetToken = async state => {
let expiresAt = spotifyTokens[state]?.now + (spotifyTokens[state]?.expires_in * 1000)
if (expiresAt < Date.now()) {
let refresh = await spotifyRefreshToken(spotifyTokens[state].refresh_token).catch(console.error)
if (refresh.error) throw new Error("Refresh error: " + refresh.error)
if (!refresh.access_token) throw new Error("No refresh access token")
spotifyTokens[state].access_token = refresh.access_token
}
return spotifyTokens[state]?.access_token
}
Val Town is a social website to write and deploy JavaScript.
Build APIs and schedule functions from your browser.
Comments
Nobody has commented on this val yet: be the first!
October 23, 2023