API Reference

IKeyedInstanceFactoryinterface

Contract defining the public members for a keyed instance factory.

Declaration

export interface IKeyedInstanceFactory<
  TId = unknown,
  TData = unknown,
  TInstance = unknown,
  TIdData = TData,
> extends IDisposable {
  readonly isEmpty: boolean;
  create(data: TData): {
    referenceCount: number;
    instance: TInstance;
    id: TId;
  };
  release(
    id: TId,
    force?: boolean,
  ): { referenceCount: number; instance: TInstance | null };
  ids(): MapIterator<TId>;
  getOrCreate(data: TData): TInstance;
  getFromId(id: TId): TInstance | undefined;
  has(id: TId): boolean;
  getFromData(data: TIdData): TInstance | undefined;
  getId(data: TIdData): TId | undefined;

Import

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

Members

11 members in this interface.

readonly isEmpty
propertyreadonly
readonly isEmpty: boolean

Type

boolean

create
method
create(data: TData): { referenceCount: number; instance: TInstance; id: TId; }

Parameters

Name
Type
Required
data
TData
required

Returns

{ referenceCount: number; instance: TInstance; id: TId; }

exists
method
exists(instance: TInstance): boolean

Parameters

Name
Type
Required
instance
TInstance
required

Returns

boolean

getFromData
method
getFromData(data: TIdData): TInstance | undefined

Parameters

Name
Type
Required
data
TIdData
required

Returns

TInstance | undefined

getFromId
method
getFromId(id: TId): TInstance | undefined

Parameters

Name
Type
Required
id
TId
required

Returns

TInstance | undefined

getId
method
getId(data: TIdData): TId | undefined

Parameters

Name
Type
Required
data
TIdData
required

Returns

TId | undefined

getOrCreate
method
getOrCreate(data: TData): TInstance

Parameters

Name
Type
Required
data
TData
required

Returns

TInstance

getReferenceCount
method
getReferenceCount(id: TId): number

Parameters

Name
Type
Required
id
TId
required

Returns

number

has
method
has(id: TId): boolean

Parameters

Name
Type
Required
id
TId
required

Returns

boolean

ids
method
ids(): MapIterator<TId>

Parameters

No parameters.

Returns

MapIterator<TId>

release
method
release(
  id: TId,
  force?: boolean
): { referenceCount: number; instance: TInstance | null }

Parameters

Name
Type
Required
id
TId
required
force?
boolean
optional

Returns

{ referenceCount: number; instance: TInstance | null }