"use strict"; /* * LINE WORKSアクセストークンの有効期限切れ対策。長時間かかるアップロードループの * 途中でトークンが失効しないよう、一定時間(thresholdMs)ごとに再取得する。 */ function createTokenRefresher({ getUserAccessToken, thresholdMs = 50 * 60 * 1000, now = Date.now }) { let token = null; let fetchedAt = 0; async function getToken() { if (!token || now() - fetchedAt >= thresholdMs) { token = await getUserAccessToken(); fetchedAt = now(); } return token; } return { getToken }; } module.exports = { createTokenRefresher };