server/cli/utils.ts
2025-06-15 23:43:27 +02:00

24 lines
693 B
TypeScript

import { Instance, User } from "@versia/kit/db";
import { parseUserAddress } from "@versia/kit/parsers";
import { Users } from "@versia/kit/tables";
import { and, eq, isNull } from "drizzle-orm";
export const retrieveUser = async (
usernameOrHandle: string,
): Promise<User | null> => {
const { username, domain } = parseUserAddress(usernameOrHandle);
const instance = domain ? await Instance.resolveFromHost(domain) : null;
const user = await User.fromSql(
and(
eq(Users.username, username),
instance
? eq(Users.instanceId, instance.data.id)
: isNull(Users.instanceId),
),
);
return user;
};