Skip to main content

PureDataObjectFactory Class

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

This API is provided for existing users, but is not recommended for new users.

To use, import via @fluidframework/aqueduct/legacy.

For more information about our API support guarantees, see here.

Signature

export declare class PureDataObjectFactory<TObj extends PureDataObject<I>, I extends DataObjectTypes = DataObjectTypes> implements IFluidDataStoreFactory, Partial<IProvideFluidDataStoreRegistry>

Implements: IFluidDataStoreFactory, Partial<IProvideFluidDataStoreRegistry>

Type Parameters

Parameter Constraint Default Description
TObj PureDataObject<I> DataObject (concrete type)
I DataObjectTypes DataObjectTypes The input types for the DataObject

Constructors

Constructor Alerts Description
(constructor)(type, ctor, sharedObjects, optionalProviders, registryEntries, runtimeClass) Beta Constructs a new instance of the PureDataObjectFactory class
(constructor)(props) Beta Constructs a new instance of the PureDataObjectFactory class

Properties

Property Alerts Modifiers Type Description
IFluidDataStoreFactory Beta readonly this
IFluidDataStoreRegistry Beta readonly IFluidDataStoreRegistry | undefined
registryEntry Beta readonly 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 Beta readonly string

Methods

Method Alerts Return Type Description
createChildInstance(parentContext, initialState, loadingGroupId) Beta Promise<TObj> 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, loadingGroupId) Beta Promise<TObj> 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) Beta Promise<TObj>
createInstanceWithDataStore(containerRuntime, initialState, packagePath, loadingGroupId) Beta Promise<[TObj, IDataStore]> Creates a new instance of the object with a datastore which exposes the aliasing api.
createNonRootInstanceCore(containerRuntime, packagePath, initialState, loadingGroupId) Beta Promise<TObj>
createPeerInstance(peerContext, initialState, loadingGroupId) Beta Promise<TObj> 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) Deprecated, Beta Promise<TObj> 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, existing) Beta Promise<IFluidDataStoreChannel>

Constructor Details

(constructor)

Constructs a new instance of the PureDataObjectFactory class

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

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

Use the props object based constructor instead. No new features will be added to this constructor, and it will eventually be deprecated and removed.

Parameters

Parameter Modifiers Type Description
type string
ctor new (props: IDataObjectProps<I>) => TObj
sharedObjects optional readonly IChannelFactory[]
optionalProviders optional FluidObjectSymbolProvider<I["OptionalProviders"]>
registryEntries optional NamedFluidDataStoreRegistryEntries
runtimeClass optional typeof FluidDataStoreRuntime

(constructor)

Constructs a new instance of the PureDataObjectFactory class

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
constructor(props: DataObjectFactoryProps<TObj, I>);

Parameters

Parameter Type Description
props DataObjectFactoryProps<TObj, I>

Property Details

IFluidDataStoreFactory

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
get IFluidDataStoreFactory(): this;

Type: this

IFluidDataStoreRegistry

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
get IFluidDataStoreRegistry(): IFluidDataStoreRegistry | undefined;

Type: 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.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
get registryEntry(): NamedFluidDataStoreRegistryEntry;

Type: NamedFluidDataStoreRegistryEntry

type

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
readonly type: string;

Type: string

Method Details

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.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
createChildInstance(parentContext: IFluidDataStoreContext, initialState?: I["InitialState"], loadingGroupId?: string): Promise<TObj>;

Parameters

Parameter Modifiers Type Description
parentContext IFluidDataStoreContext
initialState optional I["InitialState"] The initial state to provide to the created data store.
loadingGroupId optional string NOT production ready, EXPERIMENTAL, please read README. The service needs to support this feature, does not work for most services

Returns

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.

Return type: Promise<TObj>

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.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
createInstance(runtime: IContainerRuntimeBase, initialState?: I["InitialState"], loadingGroupId?: string): Promise<TObj>;

Parameters

Parameter Modifiers Type Description
runtime IContainerRuntimeBase container runtime. It's registry is used to create an object.
initialState optional I["InitialState"] The initial state to provide to the created component.
loadingGroupId optional string NOT production ready, EXPERIMENTAL, please read README. The service needs to support this feature, does not work for most services

Returns

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.

Return type: Promise<TObj>

createInstanceCore

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
protected createInstanceCore(context: IFluidDataStoreContextDetached, initialState?: I["InitialState"]): Promise<TObj>;

Parameters

Parameter Modifiers Type Description
context IFluidDataStoreContextDetached
initialState optional I["InitialState"]

Returns

Return type: Promise<TObj>

createInstanceWithDataStore

Creates a new instance of the object with a datastore which exposes the aliasing api.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
createInstanceWithDataStore(containerRuntime: IContainerRuntimeBase, initialState?: I["InitialState"], packagePath?: Readonly<string[]>, loadingGroupId?: string): Promise<[TObj, IDataStore]>;

Parameters

Parameter Modifiers Type Description
containerRuntime IContainerRuntimeBase
initialState optional I["InitialState"] The initial state to provide to the created component.
packagePath optional Readonly<string[]> The path to the data store factory to use to create the data object.
loadingGroupId optional string NOT production ready, EXPERIMENTAL, please read README. The service needs to support this feature, does not work for most services

Returns

an array containing the object created by this factory and an IDataStore object that enables users to alias the data object. The data object is attached only when it is attached to the handle graph that connects to an aliased object or when the data object is aliased.

Return type: Promise<[TObj, IDataStore]>

createNonRootInstanceCore

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
protected createNonRootInstanceCore(containerRuntime: IContainerRuntimeBase, packagePath: Readonly<string[]>, initialState?: I["InitialState"], loadingGroupId?: string): Promise<TObj>;

Parameters

Parameter Modifiers Type Description
containerRuntime IContainerRuntimeBase
packagePath Readonly<string[]>
initialState optional I["InitialState"]
loadingGroupId optional string

Returns

Return type: 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.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
createPeerInstance(peerContext: IFluidDataStoreContext, initialState?: I["InitialState"], loadingGroupId?: string): Promise<TObj>;

Parameters

Parameter Modifiers Type Description
peerContext IFluidDataStoreContext
initialState optional I["InitialState"] The initial state to provide to the created component.
loadingGroupId optional string NOT production ready, EXPERIMENTAL, please read README. The service needs to support this feature, does not work for most services

Returns

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.

Return type: Promise<TObj>

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.

This API is deprecated and will be removed in a future release.
This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
createRootInstance(rootDataStoreId: string, runtime: IContainerRuntime, initialState?: I["InitialState"]): Promise<TObj>;

Parameters

Parameter Modifiers Type Description
rootDataStoreId string
runtime IContainerRuntime container runtime. It's registry is used to create an object.
initialState optional I["InitialState"] The initial state to provide to the created component.

Returns

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.

Return type: Promise<TObj>

instantiateDataStore

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature
instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<IFluidDataStoreChannel>;

Parameters

Parameter Type Description
context IFluidDataStoreContext
existing boolean

Returns

Return type: Promise<IFluidDataStoreChannel>