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;
  readonly size: number;
  create(data: TData): {
    referenceCount: number;
    instance: TInstance;
    id: TId;
  };
  /** Like `create(data).instance` but allocates no intermediate result object. */
  createAndGetInstance(data: TData): TInstance;
  release(
    id: TId,
    force?: boolean,
  ): { referenceCount: number; instance: TInstance | null };
  ids(): MapIterator<TId>;
  getOrCreate(data: TData): TInstance;
  getFromId(id: TId): TInstance | undefined;

Import

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

Members

12 members in this interface.

readonly isEmpty
propertyreadonly
readonly isEmpty: boolean

Type

boolean

readonly size
propertyreadonly
readonly size: number

Type

number

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

Parameters

NameTypeRequired
dataTDatarequired

Returns

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

exists
method
exists(instance: TInstance): boolean

Parameters

NameTypeRequired
instanceTInstancerequired

Returns

boolean

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

Parameters

NameTypeRequired
dataTIdDatarequired

Returns

TInstance | undefined

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

Parameters

NameTypeRequired
idTIdrequired

Returns

TInstance | undefined

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

Parameters

NameTypeRequired
dataTIdDatarequired

Returns

TId | undefined

getOrCreate
method
getOrCreate(data: TData): TInstance

Parameters

NameTypeRequired
dataTDatarequired

Returns

TInstance

getReferenceCount
method
getReferenceCount(id: TId): number

Parameters

NameTypeRequired
idTIdrequired

Returns

number

has
method
has(id: TId): boolean

Parameters

NameTypeRequired
idTIdrequired

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

NameTypeRequired
idTIdrequired
force?booleanoptional

Returns

{ referenceCount: number; instance: TInstance | null }