wikibase-edit
Version:
Edit Wikibase from NodeJS
23 lines • 797 B
JavaScript
import { newError } from '../error.js';
import { getTokenFactory } from './get_token.js';
export function getAuthDataFactory(config) {
const getToken = getTokenFactory(config);
let tokenPromise;
let lastTokenRefresh = 0;
function refreshToken(refresh) {
const now = Date.now();
if (!refresh && now - lastTokenRefresh < 5000) {
throw newError("last token refreshed less than 10 seconds ago: won't retry", { config });
}
lastTokenRefresh = now;
tokenPromise = getToken();
return tokenPromise;
}
return function getAuthData(params) {
if (params?.refresh)
return refreshToken(true);
else
return tokenPromise || refreshToken();
};
}
//# sourceMappingURL=get_auth_data.js.map