API Reference

GroupedKeyedInstanceFactoryabstract class

Base class for grouped keyed instances where ids are generated per group/member combination.

When to use

Use this when your key is derived from a group + member identity (for example room + user). Each successful create(...) call must be matched with release(id) to prevent memory leaks.

Related: KeyedInstanceFactory docs

Quick facts
Kind
abstract class
Base class
KeyedInstanceFactory<TId, TData, TInstance, TIdData>
Implements
IGroupedKeyedInstanceFactory<TId, TData, TInstance, TIdData>
Members
10
Package
@rs-x/core

Import

import { GroupedKeyedInstanceFactory } from '@rs-x/core';

Example

import { GroupedKeyedInstanceFactory } from '@rs-x/core';

type ChatSubscriptionData = {
  roomId: string;
  userId: string;
};

class ChatSubscription {
  constructor(
    public readonly roomId: string,
    public readonly userId: string,
  ) {}

  public dispose(): void {
    // teardown logic (unsubscribe/close/etc.)
  }
}

class ChatSubscriptionFactory extends GroupedKeyedInstanceFactory<
  string,
  ChatSubscriptionData,
  ChatSubscription

Members

10 members in this abstract class.

getId
methodpublic
public getId(data: TIdData): TId | undefined

Parameters

Name
Type
Required
data
TIdData
required

Returns

TId | undefined

isGroupRegistered
methodpublic
public isGroupRegistered(groupId: unknown): boolean

Parameters

Name
Type
Required
groupId
unknown
required

Returns

boolean

createId
methodprotected
protected createId(data: TData): TId

Parameters

Name
Type
Required
data
TData
required

Returns

TId

createUniqueId
methodprotectedabstract
protected abstract createUniqueId(data: TIdData): TId

Parameters

Name
Type
Required
data
TIdData
required

Returns

TId

getGroup
methodprotected
protected getGroup<T>(groupId: unknown): Map<T, TId> | undefined

Parameters

Name
Type
Required
groupId
unknown
required

Returns

Map<T, TId> | undefined

getGroupId
methodprotectedabstract
protected abstract getGroupId(data: TIdData): unknown

Parameters

Name
Type
Required
data
TIdData
required

Returns

unknown

getGroupMemberId
methodprotectedabstract
protected abstract getGroupMemberId(data: TIdData): unknown

Parameters

Name
Type
Required
data
TIdData
required

Returns

unknown

getOrCreateId
methodprotected
protected override getOrCreateId(data: TIdData): TId

Parameters

Name
Type
Required
data
TIdData
required

Returns

TId

onDispose
methodprotected
protected override onDispose(): void

Parameters

No parameters.

Returns

void

releaseInstance
methodprotected
protected override releaseInstance(
  _instance: TInstance,
  id: TId
): void

Parameters

Name
Type
Required
_instance
TInstance
required
id
TId
required

Returns

void