()
| 22 | let finishedRetrieval = true |
| 23 | |
| 24 | const retrieveToken = async () => { |
| 25 | try { |
| 26 | const response = await fetchToken() |
| 27 | const token = response.data |
| 28 | if (!isPlainObject(token) || !('access_token' in token)) { |
| 29 | throw new TokenError('Received invalid token') |
| 30 | } |
| 31 | |
| 32 | cache.set('accessToken', token) |
| 33 | |
| 34 | return token |
| 35 | } catch (error) { |
| 36 | throw new TokenError('Could not fetch token', error) |
| 37 | } finally { |
| 38 | finishedRetrieval = true |
| 39 | } |
| 40 | } |
| 41 | |
| 42 | return () => { |
| 43 | const token = cache.get('accessToken') |