Very simple TwitchApi class and TypeScript interfaces for all Twitch API endpoints
npm install ts-twitch-apiVery simple TwitchApi class and TypeScript interfaces for all Twitch API endpoints
* Auto-generated from twitch-api-swagger
* Uses fetch under the hood
* Includes types for all endpoints
* _Request Query Parameters_
* _Request Body_
* _Response Body_
* Includes descriptions for the fields
``bash
npm i ts-twitch-api
pnpm i ts-twitch-api
yarn add ts-twitch-api
`
`ts
import type {
UpdateAutoModSettingsParams,
UpdateAutoModSettingsBody,
UpdateAutoModSettingsResponse,
} from 'ts-twitch-api';
const updateAutoModSettings = async (
params: UpdateAutoModSettingsParams,
body: UpdateAutoModSettingsBody,
) => {
const searchParams = new URLSearchParams(params);
const url = https://api.twitch.tv/helix/moderation/automod/settings?${searchParams};Bearer ${process.env.ACCESS_TOKEN}
const response = await fetch(url, {
method: 'PUT',
body: JSON.stringify(body),
headers: {
Authorization: ,`
'Client-Id': process.env.CLIENT_ID,
'Content-Type': 'application/json',
},
});
return response.json() as Promise
}
`ts
import { TwitchApi } from 'ts-twitch-api';
const twitchApi = new TwitchApi({
accessToken: process.env.ACCESS_TOKEN,
clientId: process.env.CLIENT_ID,
});
const response = await twitchApi.chat.updateChatSettings(
// query params
{ broadcaster_id: '1', moderator_id: '2' },
// body
{ emote_mode: true },
);
if (response.ok) {
console.log(response.data);
} else {
console.error(response.status);
}
const streams = await twitchApi.streams.getStreams(
// some endpoints accept multiple ids like this: id=1234&id=5678
{ user_id: ['1', '2'] },
// override accessToken and/or clientId for different requests
{
accessToken: '
clientId: '
},
);
if (streams.ok) {
console.log(streams.data);
}
// pass fetch options via RequestInit object
const ac = new AbortController();
const users = twitchApi.users.getUsers(
{ id: ['1', '2'] },
{ requestInit: { signal: ac.signal } },
);
ac.abort();
``