PureDataObjectFactory Class

Packages > @fluidframework/aqueduct > PureDataObjectFactory

PureDataObjectFactory is a barebones IFluidDataStoreFactory for use with PureDataObject. Consumers should typically use DataObjectFactory instead unless creating another base data store factory.

Generics: TObj - DataObject (concrete type) O - represents a type that will define optional providers that will be injected S - the initial state type that the produced data store may take during creation E - represents events that will be available in the EventForwarder

Signature:

export declare class PureDataObjectFactory<TObj extends PureDataObject<O, S, E>, O, S, E extends IEvent = IEvent> implements IFluidDataStoreFactory, Partial<IProvideFluidDataStoreRegistry>, IRootDataObjectFactory 

Implements: IFluidDataStoreFactory, Partial<IProvideFluidDataStoreRegistry>, IRootDataObjectFactory

Constructors

List of constructors for this class
Constructor Modifiers Description
(constructor)(type, ctor, sharedObjects, optionalProviders, registryEntries, runtimeClass) Constructs a new instance of the PureDataObjectFactory class

Properties

List of properties for this class
Property Modifiers Type Description
IFluidDataStoreFactory this
IFluidDataStoreRegistry IFluidDataStoreRegistry | undefined
registryEntry NamedFluidDataStoreRegistryEntry Convenience helper to get the data store's/factory's data store registry entry. The return type hides the factory's generics, easing grouping of registry entries that differ only in this way into the same array.
type string

Methods

List of methods on this class
Method Modifiers Description
createChildInstance(parentContext, initialState) Creates a new instance of the object. Uses parent context's registry to build package path to this factory. In other words, registry of context passed in has to contain this factory, with the name that matches this factory's type. It is intended to be used by data store objects that create sub-objects.
createInstance(runtime, initialState) Creates a new instance of the object. Uses container's registry to find this factory. It's expected that only container owners would use this functionality, as only such developers have knowledge of entries in container registry. The name in this registry for such record should match type of this factory.
createInstanceCore(context, initialState)
createNonRootInstanceCore(containerRuntime, packagePath, initialState)
createPeerInstance(peerContext, initialState) Creates a new instance of the object. Uses peer context's registry and its package path to identify this factory. In other words, registry of context passed in has to have this factory. Intended to be used by data store objects that need to create peers (similar) instances of existing objects.
createRootInstance(rootDataStoreId, runtime, initialState) Creates a new root instance of the object. Uses container's registry to find this factory. It's expected that only container owners would use this functionality, as only such developers have knowledge of entries in container registry. The name in this registry for such record should match type of this factory.
instantiateDataStore(context) This is where we do data store setup.

Constructors

PureDataObjectFactory.(constructor)

Constructs a new instance of the PureDataObjectFactory class

Signature:

constructor(type: string, ctor: new (props: IDataObjectProps<O, S>) => TObj, sharedObjects: readonly IChannelFactory[], optionalProviders: FluidObjectSymbolProvider<O>, registryEntries?: NamedFluidDataStoreRegistryEntries, runtimeClass?: typeof FluidDataStoreRuntime);

Parameters

List of parameters
Parameter Type Description
type string
ctor new (props: IDataObjectProps) => TObj
sharedObjects readonly IChannelFactory[]
optionalProviders FluidObjectSymbolProvider
registryEntries NamedFluidDataStoreRegistryEntries
runtimeClass typeof FluidDataStoreRuntime

Properties

IFluidDataStoreFactory

Signature:

get IFluidDataStoreFactory(): this;

IFluidDataStoreRegistry

Signature:

get IFluidDataStoreRegistry(): IFluidDataStoreRegistry | undefined;

registryEntry

Convenience helper to get the data store’s/factory’s data store registry entry. The return type hides the factory’s generics, easing grouping of registry entries that differ only in this way into the same array.

Signature:

get registryEntry(): NamedFluidDataStoreRegistryEntry;

type

Signature:

readonly type: string;

Methods

createChildInstance

Creates a new instance of the object. Uses parent context’s registry to build package path to this factory. In other words, registry of context passed in has to contain this factory, with the name that matches this factory’s type. It is intended to be used by data store objects that create sub-objects.

Signature:

createChildInstance(parentContext: IFluidDataStoreContext, initialState?: S): Promise<TObj>;

Parameters

List of parameters
Parameter Type Description
parentContext IFluidDataStoreContext
initialState S The initial state to provide to the created data store.

Returns:

Promise<TObj>

an object created by this factory. Data store and objects created are not attached to container. They get attached only when a handle to one of them is attached to already attached objects.

createInstance

Creates a new instance of the object. Uses container’s registry to find this factory. It’s expected that only container owners would use this functionality, as only such developers have knowledge of entries in container registry. The name in this registry for such record should match type of this factory.

Signature:

createInstance(runtime: IContainerRuntimeBase, initialState?: S): Promise<TObj>;

Parameters

List of parameters
Parameter Type Description
runtime IContainerRuntimeBase container runtime. It's registry is used to create an object.
initialState S The initial state to provide to the created component.

Returns:

Promise<TObj>

an object created by this factory. Data store and objects created are not attached to container. They get attached only when a handle to one of them is attached to already attached objects.

createInstanceCore

Signature:

protected createInstanceCore(context: IFluidDataStoreContextDetached, initialState?: S): Promise<TObj>;

Parameters

List of parameters
Parameter Type Description
context IFluidDataStoreContextDetached
initialState S

Returns:

Promise<TObj>

createNonRootInstanceCore

Signature:

protected createNonRootInstanceCore(containerRuntime: IContainerRuntimeBase, packagePath: Readonly<string[]>, initialState?: S): Promise<TObj>;

Parameters

List of parameters
Parameter Type Description
containerRuntime IContainerRuntimeBase
packagePath Readonly
initialState S

Returns:

Promise<TObj>

createPeerInstance

Creates a new instance of the object. Uses peer context’s registry and its package path to identify this factory. In other words, registry of context passed in has to have this factory. Intended to be used by data store objects that need to create peers (similar) instances of existing objects.

Signature:

createPeerInstance(peerContext: IFluidDataStoreContext, initialState?: S): Promise<TObj>;

Parameters

List of parameters
Parameter Type Description
peerContext IFluidDataStoreContext
initialState S The initial state to provide to the created component.

Returns:

Promise<TObj>

an object created by this factory. Data store and objects created are not attached to container. They get attached only when a handle to one of them is attached to already attached objects.

createRootInstance

Creates a new root instance of the object. Uses container’s registry to find this factory. It’s expected that only container owners would use this functionality, as only such developers have knowledge of entries in container registry. The name in this registry for such record should match type of this factory.

Signature:

createRootInstance(rootDataStoreId: string, runtime: IContainerRuntime, initialState?: S): Promise<TObj>;

Parameters

List of parameters
Parameter Type Description
rootDataStoreId string
runtime IContainerRuntime container runtime. It's registry is used to create an object.
initialState S The initial state to provide to the created component.

Returns:

Promise<TObj>

an object created by this factory. Data store and objects created are not attached to container. They get attached only when a handle to one of them is attached to already attached objects.

instantiateDataStore

This is where we do data store setup.

Signature:

instantiateDataStore(context: IFluidDataStoreContext): Promise<FluidDataStoreRuntime>;

Parameters

List of parameters
Parameter Type Description
context IFluidDataStoreContext data store context used to load a data store runtime

Returns:

Promise<FluidDataStoreRuntime>