disvite
    Preparing search index...

    Interface StorageAdapter

    Storage adapter interface to support pluggable backends (In-Memory, Mongoose, Redis, Prisma, etc.).

    interface StorageAdapter {
        addBonus(
            guildId: string,
            userId: string,
            amount: number,
        ): Promise<number>;
        close?(): Promise<void>;
        getBonus(guildId: string, userId: string): Promise<number>;
        getLeaderboard(
            guildId: string,
            limit?: number,
        ): Promise<{ stats: MemberInviteStats; userId: string }[]>;
        getMemberStats(guildId: string, userId: string): Promise<MemberInviteStats>;
        init?(): Promise<void>;
        isFakeRejoin(
            guildId: string,
            inviteeId: string,
            thresholdMs: number,
        ): Promise<boolean>;
        recordJoin(record: Omit<InviteRecord, "leftAt">): Promise<InviteRecord>;
        recordLeave(
            guildId: string,
            inviteeId: string,
        ): Promise<InviteRecord | null>;
    }

    Implemented by

    Index

    Methods

    • Add or subtract bonus invites for a user in a guild.

      Parameters

      • guildId: string
      • userId: string
      • amount: number

      Returns Promise<number>

    • Optional lifecycle hook to close database connections upon teardown.

      Returns Promise<void>

    • Get current bonus invites for a user in a guild.

      Parameters

      • guildId: string
      • userId: string

      Returns Promise<number>

    • Fetch top inviters for a guild ordered by net valid invites.

      Parameters

      • guildId: string
      • Optionallimit: number

      Returns Promise<{ stats: MemberInviteStats; userId: string }[]>

    • Optional lifecycle hook to initialize the storage connection.

      Returns Promise<void>

    • Check whether a user recently left this guild within the specified threshold milliseconds.

      Parameters

      • guildId: string
      • inviteeId: string
      • thresholdMs: number

      Returns Promise<boolean>

    • Record a member leave event by updating the latest active join record.

      Parameters

      • guildId: string
      • inviteeId: string

      Returns Promise<InviteRecord | null>