Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/talha-t/twitch-wrapper-ts
Twitch Chat and API Implementation for Typescript
https://github.com/talha-t/twitch-wrapper-ts
twitch-api typescript
Last synced: 2 months ago
JSON representation
Twitch Chat and API Implementation for Typescript
- Host: GitHub
- URL: https://github.com/talha-t/twitch-wrapper-ts
- Owner: Talha-T
- License: mit
- Created: 2018-01-01T12:06:47.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-11-11T13:23:05.000Z (about 6 years ago)
- Last Synced: 2024-11-19T20:54:56.280Z (2 months ago)
- Topics: twitch-api, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/twitch-wrapper-ts
- Size: 4.18 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# twitch-wrapper-ts
#### Twitch Chat & API Wrapper for Node.js Typescript
[![NPM](https://nodei.co/npm/twitch-wrapper-ts.png)](https://nodei.co/npm/twitch-wrapper-ts/)
---### Features:
- Very simple to use, both chat wise and API wise.
- Strongly typed API results.[Bot Example](https://github.com/Talha-T/twitch-bot)
### Installation:
`npm install twitch-wrapper-ts`### How to Use:
After installing the package, getting chat is as easy as this:
```js
import { Twitch, Message, ChannelUserState } from "twitch-wrapper-ts";const twitch: Twitch = new Twitch("username", "token", "channelnames", "seperated");
twitch.connect();
twitch.on("connected", () => twitch.send("Connected!!", "somechannel"));
twitch.on("message", (message: Message, channelState: ChannelUserState) => console.log(message));
/*
Message {
badges: '',
color: '#00FF7F',
displayName: 'kutsalouse',
emotes: '',
id: '325003d6-aad3-41c5-aa89-d6ee9c56efd7',
mod: true,
roomId: 69223356,
subscriber: true,
tmiSentTs: 1515006994874,
turbo: true,
userId: 47954587,
userType: '',
content: 'drop var alt tab yapma artık',
channel: '#only35support',
broadcaster:
Broadcaster {
emoteOnly: true,
followersOnly: -1,
mercury: true,
r9k: true,
rituals: true,
roomId: 69223356,
slow: true,
subsOnly: true,
broadcasterLang: '' }
}
*/
```Strongly typed API calls (Fully documented in the Intellisense) :
```ts
import { ApiRequester } from "twitch-wrapper-ts";
const twitchApi = new TwitchApi(clientId, oauth);
const users = await twitchApi.users.get({
login: "implicit1",
});const followData = await twitchApi.users.follows.get({
from_id: users.data[0].id,
});
/*
{ total: 63,
data:
[ { fromId: '69056964',
toId: '30080751',
followedAt: '2018-02-10T16:52:34Z' },
...
]
}
*/
```Error handling:
```ts
try {
//something
} catch (err) {
console.log(err.response);
}
// { error: 'Service Unavailable', status: 503, message: '' }
```### Important Notes.
- Do not include the prefix `oauth:` in your oauth password.
- If you do not have one, get it here: http://twitchapps.com/tmi/
- Including # or not in the channel does NOT matter.
- Currently you can get detailed information in IntelliSense, documententation will be added soon.
- As an exception for the clips endpoint, you have to cast your data from `IClip` as here:
```ts
const clip = await twitchApi.clips.get({
id: "AwkwardHelplessSalamanderSwiftRage",
});
const clips = clip.data.map((clipV) => clipV as Clip);
console.log(clips[0].embedUrl);
```
- If you cannot make something work, be sure to check the summary comments for it.### Extra Contact:
Implicit#8954 on Discord, [email protected]