Just wrote this fetch version and it definitely works. Try with lowercase header keys.
const clientID = '';
function getUser(username) {
let url = `https://api.twitch.tv/helix/users?login=${username}`;
let headers = new Headers({
'Client-ID': clientID
});
return fetch(url, { headers })
.then(res => {
let { headers } = res;
let rateLimit = {
limit: parseInt(headers.get('ratelimit-limit')),
remaining: parseInt(headers.get('ratelimit-remaining')),
reset: parseInt(headers.get('ratelimit-reset'))
};
return res.json()
.then(data => {
data.rateLimit = rateLimit;
return data;
});
});
}
let username = 'alca';
getUser(username)
.then(({ rateLimit: { limit, remaining, reset }, data: [ { display_name, id } ] }) => {
console.log(`Got user data ${display_name} (${id})`);
let seconds = reset - Date.now() / 1000;
console.log(`${remaining}/${limit} calls remain for ${~~seconds} seconds.`);
});
Got user data Alca (7676884)
18/30 calls remain for 50 seconds.