require('dotenv').config() const validateToken = require('./validateToken') const refreshToken = require('./refreshToken') const writeEnv = require('./writeEnv') let client_id = process.env.TWITCH_APP_ID let client_secret = process.env.TWITCH_APP_SECRET module.exports = async function (access_token) { // Check if channel_access_token is valid if (!await validateToken(access_token)) { // If not, refresh it let result = await refreshToken(client_id, client_secret, access_token) if (result.status) return `Can't refresh channel_access_token: ${result.message}` let [channel_access_token, channel_refresh_token] = result writeEnv('TWITCH_CHANNEL_ACCESS_TOKEN', channel_access_token) writeEnv('TWITCH_CHANNEL_REFRESH_TOKEN', channel_refresh_token) let channel_name = await getUserInfo(client_id, channel_access_token).login writeEnv('TWITCH_CHANNEL_USERNAME', channel_name) } return [channel_access_token, channel_name] }