in src/utils.ts [89:129]
export function parseUser(data: string): User {
const params = new URLSearchParams(data);
function stringField(name: string): string {
const value = params.get(name);
if(!value ) { throw new Error(`Missing ${name}`) }
return value;
}
function numberField(name: string): number {
const value = params.get(name);
if(!value) { throw new Error(`Missing ${name}`) }
return parseInt(value);
}
function booleanField(name: string): boolean {
return params.get(name) === 'true';
}
function stringListField(name: string): string[] {
const value = params.get(name);
if(!value) { throw new Error(`Missing ${name}`) }
return value.split(",");
}
const avatarUrl = params.get("avatarUrl");
return {
firstName: stringField("firstName"),
lastName: stringField("lastName"),
email: stringField("email"),
avatarUrl: avatarUrl ? avatarUrl : undefined,
authenticatingSystem: stringField("system"),
authenticatedIn: stringListField("authedIn"),
expires: numberField("expires"),
multifactor: booleanField("multifactor")
};
}