simplify getTwrplePoxy syntax

This commit is contained in:
2025-01-26 09:20:14 +00:00
parent 63558e9421
commit 62cd53b775
+15 -15
View File
@@ -1,5 +1,13 @@
import TwitchAuth from "./TwitchAuth.mjs"; import TwitchAuth from "./TwitchAuth.mjs";
function getTwurpleProxy(token){
return new Proxy(token,{
get(target, name, receiver){
return target[name.toString().replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`)]
}
})
}
export default class SugoiAuthProvider { export default class SugoiAuthProvider {
/** @type {TwitchAuth} */ /** @type {TwitchAuth} */
@@ -8,14 +16,6 @@ export default class SugoiAuthProvider {
/** @type {String} */ /** @type {String} */
clientId; clientId;
static #getTwurpleProxy(token){
return new Proxy(token,{
get(target, name, receiver){
return target[name.toString().replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`)]
}
})
}
constructor(client_id){ constructor(client_id){
this.#auth=new TwitchAuth(client_id) this.#auth=new TwitchAuth(client_id)
this.clientId=client_id this.clientId=client_id
@@ -26,11 +26,11 @@ export default class SugoiAuthProvider {
* @returns {Promise<import("./TwitchAuth.mjs").TwitchToken>} * @returns {Promise<import("./TwitchAuth.mjs").TwitchToken>}
*/ */
addUser(...scopes){ addUser(...scopes){
return this.#auth.getToken(...scopes).then(SugoiAuthProvider.#getTwurpleProxy) return this.#auth.getToken(...scopes).then(getTwurpleProxy)
} }
addUserForToken(token){ addUserForToken(token){
return this.#auth.setToken(token).then(SugoiAuthProvider.#getTwurpleProxy) return this.#auth.setToken(token).then(getTwurpleProxy)
} }
removeUser(){ removeUser(){
@@ -49,7 +49,7 @@ export default class SugoiAuthProvider {
scopes.add(scope) scopes.add(scope)
} }
} }
return this.#auth.getToken(...scopes).then(SugoiAuthProvider.#getTwurpleProxy) return this.#auth.getToken(...scopes).then(getTwurpleProxy)
.then(token=>{ .then(token=>{
if(token.user_id!=user){ if(token.user_id!=user){
throw 'got access token for wrong user' throw 'got access token for wrong user'
@@ -66,14 +66,14 @@ export default class SugoiAuthProvider {
* @returns {Promise<import("./TwitchAuth.mjs").TwitchToken>} * @returns {Promise<import("./TwitchAuth.mjs").TwitchToken>}
*/ */
getAnyAccessToken(user){ getAnyAccessToken(user){
return this.#auth.getToken().then(SugoiAuthProvider.#getTwurpleProxy) return this.#auth.getToken().then(getTwurpleProxy)
.then(token=>{ .then(token=>{
if(token.user_id!=user){ if(token.user_id!=user){
throw 'got access token for wrong user' throw 'got access token for wrong user'
} }
return token.then(SugoiAuthProvider.#getTwurpleProxy) return token.then(getTwurpleProxy)
}).catch(error=>{ }).catch(error=>{
return this.#auth.getAppToken().then(SugoiAuthProvider.#getTwurpleProxy) return this.#auth.getAppToken().then(getTwurpleProxy)
}) })
} }
@@ -94,6 +94,6 @@ export default class SugoiAuthProvider {
if(token.user_id!=user){ if(token.user_id!=user){
throw 'got access token for wrong user' throw 'got access token for wrong user'
} }
return this.#auth.getFreshToken(token).then(SugoiAuthProvider.#getTwurpleProxy) return this.#auth.getFreshToken(token).then(getTwurpleProxy)
} }
} }