PureDataObjectFactory Class
PureDataObjectFactory is a barebones IFluidDataStoreFactory for use with PureDataObject. Consumers should typically use DataObjectFactory instead unless creating another base data store factory.
Signature
export declare class PureDataObjectFactory<TObj extends PureDataObject<I>, I extends DataObjectTypes = DataObjectTypes> implements IFluidDataStoreFactory, Partial<IProvideFluidDataStoreRegistry>, IRootDataObjectFactory
Implements: IFluidDataStoreFactory, Partial<IProvideFluidDataStoreRegistry>, IRootDataObjectFactory
Type Parameters
Parameter | Constraint | Default | Description |
---|---|---|---|
TObj | PureDataObject<I> | DataObject (concrete type) | |
I | DataObjectTypes | DataObjectTypes | The input types for the DataObject |
Constructors
Constructor | Description |
---|---|
(constructor)(type, ctor, sharedObjects, optionalProviders, registryEntries, runtimeClass) | Constructs a new instance of the PureDataObjectFactory class |
Properties
Property | 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
Method | Return Type | Description |
---|---|---|
createChildInstance(parentContext, initialState) | 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) | 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) | Promise<TObj> | |
createNonRootInstanceCore(containerRuntime, packagePath, initialState) | Promise<TObj> | |
createPeerInstance(peerContext, initialState) | 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) | 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) | Promise<FluidDataStoreRuntime> | This is where we do data store setup. |
Constructor Details
(constructor)
Constructs a new instance of the PureDataObjectFactory
class
Signature
constructor(type: string, ctor: new (props: IDataObjectProps<I>) => TObj, sharedObjects: readonly IChannelFactory[], optionalProviders: FluidObjectSymbolProvider<I["OptionalProviders"]>, registryEntries?: NamedFluidDataStoreRegistryEntries, runtimeClass?: typeof FluidDataStoreRuntime);
Parameters
Parameter | Modifiers | Type | Description |
---|---|---|---|
type | string | ||
ctor | new (props: IDataObjectProps<I>) => TObj | ||
sharedObjects | readonly IChannelFactory[] | ||
optionalProviders | FluidObjectSymbolProvider<I["OptionalProviders"]> | ||
registryEntries | optional | NamedFluidDataStoreRegistryEntries | |
runtimeClass | optional | typeof FluidDataStoreRuntime |
Property Details
IFluidDataStoreFactory
Signature
get IFluidDataStoreFactory(): this;
Type: this
IFluidDataStoreRegistry
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.
Signature
get registryEntry(): NamedFluidDataStoreRegistryEntry;
Type: NamedFluidDataStoreRegistryEntry
type
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.
Signature
createChildInstance(parentContext: IFluidDataStoreContext, initialState?: I["InitialState"]): Promise<TObj>;
Parameters
Parameter | Modifiers | Type | Description |
---|---|---|---|
parentContext | IFluidDataStoreContext | ||
initialState | optional | I["InitialState"] | The initial state to provide to the created data store. |
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.
Signature
createInstance(runtime: IContainerRuntimeBase, initialState?: I["InitialState"]): 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. |
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
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>
createNonRootInstanceCore
Signature
protected createNonRootInstanceCore(containerRuntime: IContainerRuntimeBase, packagePath: Readonly<string[]>, initialState?: I["InitialState"]): Promise<TObj>;
Parameters
Parameter | Modifiers | Type | Description |
---|---|---|---|
containerRuntime | IContainerRuntimeBase | ||
packagePath | Readonly<string[]> | ||
initialState | optional | I["InitialState"] |
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.
Signature
createPeerInstance(peerContext: IFluidDataStoreContext, initialState?: I["InitialState"]): Promise<TObj>;
Parameters
Parameter | Modifiers | Type | Description |
---|---|---|---|
peerContext | IFluidDataStoreContext | ||
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>
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?: 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 is where we do data store setup.
Signature
instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<FluidDataStoreRuntime>;
Parameters
Parameter | Type | Description |
---|---|---|
context | IFluidDataStoreContext | data store context used to load a data store runtime |
existing | boolean |
Returns
Return type: Promise<FluidDataStoreRuntime>