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.
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
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
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
For more information about our API support guarantees, see here.
Signature
get IFluidDataStoreFactory(): this;
Type: this
IFluidDataStoreRegistry
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.
For more information about our API support guarantees, see here.
Signature
get registryEntry(): NamedFluidDataStoreRegistryEntry;
Type: NamedFluidDataStoreRegistryEntry
type
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.
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.
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
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.
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
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.
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.
- the issue is that it does not allow the customer to decide the conflict resolution policy when an aliasing conflict occurs. Use createInstanceWithDataStore(containerRuntime, initialState, packagePath, loadingGroupId) instead.
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
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>