♻️ Extract ClientCredentials and add return types
This commit is contained in:
@@ -2,6 +2,7 @@ import { AccessToken, RefreshableAuthProvider, StaticAuthProvider } from "twitch
|
|||||||
import { getTokenData, saveTokenData } from "./tokenData";
|
import { getTokenData, saveTokenData } from "./tokenData";
|
||||||
|
|
||||||
import { ApiClient } from "twitch";
|
import { ApiClient } from "twitch";
|
||||||
|
import { ClientCredentials } from "../../interfaces/ClientCredentials";
|
||||||
import { TokenData } from "../../interfaces/TokenData";
|
import { TokenData } from "../../interfaces/TokenData";
|
||||||
|
|
||||||
const LOG_PREFIX = "[Twitch] ";
|
const LOG_PREFIX = "[Twitch] ";
|
||||||
@@ -14,11 +15,6 @@ export {
|
|||||||
getUsernameFromId
|
getUsernameFromId
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ClientCredentials {
|
|
||||||
clientId: string;
|
|
||||||
clientSecret: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getClientCredentials(): ClientCredentials {
|
function getClientCredentials(): ClientCredentials {
|
||||||
if (
|
if (
|
||||||
!process.env.TWITCH_CLIENT_ID ||
|
!process.env.TWITCH_CLIENT_ID ||
|
||||||
@@ -68,7 +64,7 @@ async function getAuthProvider(): Promise<RefreshableAuthProvider> {
|
|||||||
expiry,
|
expiry,
|
||||||
onRefresh: onRefresh
|
onRefresh: onRefresh
|
||||||
}
|
}
|
||||||
) as RefreshableAuthProvider;
|
);
|
||||||
|
|
||||||
return refreshAuthProvider;
|
return refreshAuthProvider;
|
||||||
}
|
}
|
||||||
@@ -90,13 +86,13 @@ async function onRefresh(refreshData: AccessToken): Promise<void> {
|
|||||||
await saveTokenData(newTokenData);
|
await saveTokenData(newTokenData);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getApiClient() {
|
async function getApiClient(): Promise<ApiClient> {
|
||||||
const authProvider = await getAuthProvider();
|
const authProvider = await getAuthProvider();
|
||||||
|
|
||||||
return await new ApiClient({ authProvider });
|
return await new ApiClient({ authProvider });
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getUsernameFromId(userId: number) {
|
async function getUsernameFromId(userId: number): Promise<string | null> {
|
||||||
const apiClient = await getApiClient();
|
const apiClient = await getApiClient();
|
||||||
const user = await apiClient.helix.users.getUserById(userId);
|
const user = await apiClient.helix.users.getUserById(userId);
|
||||||
|
|
||||||
|
4
src/interfaces/ClientCredentials.ts
Normal file
4
src/interfaces/ClientCredentials.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
export interface ClientCredentials {
|
||||||
|
clientId: string;
|
||||||
|
clientSecret: string;
|
||||||
|
}
|
Reference in New Issue
Block a user