Added valkyriechat files

This commit is contained in:
Toastie 2024-09-12 18:46:15 +12:00
parent bb7571f6b8
commit 0707b4bd5f
Signed by: toastie_t0ast
GPG key ID: 27F3B6855AFD40A4

48
valkyriechat/index.ts Normal file
View file

@ -0,0 +1,48 @@
import type { APIUser } from '../v9';
export enum PublicUserEnum {
username,
discriminator,
id,
public_flags,
avatar,
accent_color,
banner,
bio,
bot,
premium_since,
premium_type,
theme_colors,
pronouns,
}
export type PublicUserKeys = keyof typeof PublicUserEnum;
export enum PrivateUserEnum {
flags,
mfa_enabled,
email,
phone,
verified,
nsfw_allowed,
premium,
premium_type,
purchased_flags,
premium_usage_flags,
disabled,
// settings, // now a relation
// locale
}
export type PrivateUserKeys = keyof typeof PrivateUserEnum | PublicUserKeys;
export const PublicUserProjection = Object.values(PublicUserEnum).filter(
(x) => typeof x === 'string',
) as PublicUserKeys[];
export const PrivateUserProjection = [
...PublicUserProjection,
...Object.values(PrivateUserEnum).filter((x) => typeof x === 'string'),
] as PrivateUserKeys[];
// Private user data that should never get sent to the client
export type PublicUser = Pick<APIUser, PublicUserKeys>;
export type UserPublic = Pick<APIUser, PublicUserKeys>;