Interface for a user service.

interface UserServiceInterface {
    findByEmail: <Role extends string, T extends BaseUser<Role>>(
        email: string,
    ) => Promise<T>;
    findById: <Role extends string, T extends BaseUser<Role>>(
        id: T["id"],
    ) => Promise<T>;
    resolveCredentialsFor: <
        Role extends string,
        T extends BaseUser<Role>,
        CredentialsType,
    >(
        user: T,
    ) => Promise<CredentialsType>;
}

Implemented by

Properties

findByEmail: <Role extends string, T extends BaseUser<Role>>(
    email: string,
) => Promise<T>

Finds a user by the given email.

findById: <Role extends string, T extends BaseUser<Role>>(
    id: T["id"],
) => Promise<T>

Finds a user by the given id.

resolveCredentialsFor: <
    Role extends string,
    T extends BaseUser<Role>,
    CredentialsType,
>(
    user: T,
) => Promise<CredentialsType>

Resolves the credentials for the provided user.