22 lines
665 B
JavaScript
22 lines
665 B
JavaScript
|
const REGEX_IS_INSTALLATION_LEGACY = /^v1\./;
|
||
|
const REGEX_IS_INSTALLATION = /^ghs_/;
|
||
|
const REGEX_IS_USER_TO_SERVER = /^ghu_/;
|
||
|
export async function auth(token) {
|
||
|
const isApp = token.split(/\./).length === 3;
|
||
|
const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) ||
|
||
|
REGEX_IS_INSTALLATION.test(token);
|
||
|
const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);
|
||
|
const tokenType = isApp
|
||
|
? "app"
|
||
|
: isInstallation
|
||
|
? "installation"
|
||
|
: isUserToServer
|
||
|
? "user-to-server"
|
||
|
: "oauth";
|
||
|
return {
|
||
|
type: "token",
|
||
|
token: token,
|
||
|
tokenType,
|
||
|
};
|
||
|
}
|