Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c2c952e96a |
@@ -1,5 +1,20 @@
|
|||||||
import * as TwitchAuth from "./TwitchAuth.ts";
|
import * as TwitchAuth from "./TwitchAuth.ts";
|
||||||
import { AccessTokenMaybeWithUserId, AuthProvider, AccessToken, AccessTokenWithUserId } from "@twurple/auth";
|
import { AccessTokenMaybeWithUserId, AuthProvider, AccessTokenWithUserId } from "@twurple/auth";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A type that represents a user and contains a user ID.
|
||||||
|
*/
|
||||||
|
interface UserIdResolvableType {
|
||||||
|
/**
|
||||||
|
* The ID of the user.
|
||||||
|
*/
|
||||||
|
id: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A user ID or a user or channel object.
|
||||||
|
*/
|
||||||
|
type UserIdResolvable = string | number | UserIdResolvableType;
|
||||||
|
|
||||||
type Token = TwitchAuth.TwitchToken & AccessTokenMaybeWithUserId
|
type Token = TwitchAuth.TwitchToken & AccessTokenMaybeWithUserId
|
||||||
|
|
||||||
@@ -59,7 +74,7 @@ export default class SugoiAuthProvider implements AuthProvider {
|
|||||||
this.#token = null
|
this.#token = null
|
||||||
}
|
}
|
||||||
|
|
||||||
async getAccessTokenForUser(user: string | number, ...scopeSets: string[][]) {
|
async getAccessTokenForUser(user: UserIdResolvable, ...scopeSets: string[][]) {
|
||||||
if ((!scopeSets[0]) && (this.#token)) {
|
if ((!scopeSets[0]) && (this.#token)) {
|
||||||
return this.#token as AccessTokenWithUserId
|
return this.#token as AccessTokenWithUserId
|
||||||
}
|
}
|
||||||
@@ -72,18 +87,18 @@ export default class SugoiAuthProvider implements AuthProvider {
|
|||||||
return this.#token as AccessTokenWithUserId
|
return this.#token as AccessTokenWithUserId
|
||||||
}
|
}
|
||||||
|
|
||||||
async getAnyAccessToken(user: string | number) {
|
async getAnyAccessToken(user: UserIdResolvable) {
|
||||||
return this.#token || TwitchAuth.getAppToken(this.clientId).then(getTwurpleProxy)
|
return this.#token || TwitchAuth.getAppToken(this.clientId).then(getTwurpleProxy)
|
||||||
}
|
}
|
||||||
|
|
||||||
getCurrentScopesForUser(user: string | number) {
|
getCurrentScopesForUser(user: UserIdResolvable) {
|
||||||
if (!this.#token || this.#token instanceof Promise) {
|
if (!this.#token || this.#token instanceof Promise) {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
return this.#token.scope
|
return this.#token.scope
|
||||||
}
|
}
|
||||||
|
|
||||||
async refreshAccessTokenForUser(user: string | number) {
|
async refreshAccessTokenForUser(user: UserIdResolvable) {
|
||||||
this.#token = await TwitchAuth.refreshToken(this.clientId, this.#token.refresh_token).then(this.#setToken)
|
this.#token = await TwitchAuth.refreshToken(this.clientId, this.#token.refresh_token).then(this.#setToken)
|
||||||
return this.#token as AccessTokenWithUserId
|
return this.#token as AccessTokenWithUserId
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user