@fluidframework/fluid-static 2.0.0-internal.6.4.0 → 2.0.0-internal.7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +64 -0
- package/api-extractor.json +9 -1
- package/api-report/fluid-static.api.md +152 -0
- package/dist/fluid-static-alpha.d.ts +548 -0
- package/dist/fluid-static-beta.d.ts +548 -0
- package/dist/fluid-static-public.d.ts +548 -0
- package/dist/fluid-static.d.ts +557 -0
- package/dist/rootDataObject.d.ts.map +1 -1
- package/dist/rootDataObject.js +16 -5
- package/dist/rootDataObject.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types.d.ts +8 -8
- package/dist/types.d.ts.map +1 -1
- package/lib/rootDataObject.d.ts.map +1 -1
- package/lib/rootDataObject.js +19 -6
- package/lib/rootDataObject.js.map +1 -1
- package/lib/types.d.ts +8 -8
- package/lib/types.d.ts.map +1 -1
- package/package.json +26 -26
- package/src/rootDataObject.ts +16 -7
package/dist/types.d.ts
CHANGED
|
@@ -8,25 +8,25 @@ import { IFluidDataStoreFactory } from "@fluidframework/runtime-definitions";
|
|
|
8
8
|
/**
|
|
9
9
|
* A mapping of string identifiers to instantiated `DataObject`s or `SharedObject`s.
|
|
10
10
|
*/
|
|
11
|
-
export
|
|
11
|
+
export type LoadableObjectRecord = Record<string, IFluidLoadable>;
|
|
12
12
|
/**
|
|
13
13
|
* A mapping of string identifiers to classes that will later be used to instantiate a corresponding `DataObject`
|
|
14
14
|
* or `SharedObject` in a {@link LoadableObjectRecord}.
|
|
15
15
|
*/
|
|
16
|
-
export
|
|
16
|
+
export type LoadableObjectClassRecord = Record<string, LoadableObjectClass<any>>;
|
|
17
17
|
/**
|
|
18
18
|
* A class object of `DataObject` or `SharedObject`.
|
|
19
19
|
*
|
|
20
20
|
* @typeParam T - The class of the `DataObject` or `SharedObject`.
|
|
21
21
|
*/
|
|
22
|
-
export
|
|
22
|
+
export type LoadableObjectClass<T extends IFluidLoadable> = DataObjectClass<T> | SharedObjectClass<T>;
|
|
23
23
|
/**
|
|
24
24
|
* A class that has a factory that can create a `DataObject` and a
|
|
25
25
|
* constructor that will return the type of the `DataObject`.
|
|
26
26
|
*
|
|
27
27
|
* @typeParam T - The class of the `DataObject`.
|
|
28
28
|
*/
|
|
29
|
-
export
|
|
29
|
+
export type DataObjectClass<T extends IFluidLoadable> = {
|
|
30
30
|
readonly factory: IFluidDataStoreFactory;
|
|
31
31
|
} & LoadableObjectCtor<T>;
|
|
32
32
|
/**
|
|
@@ -35,7 +35,7 @@ export declare type DataObjectClass<T extends IFluidLoadable> = {
|
|
|
35
35
|
*
|
|
36
36
|
* @typeParam T - The class of the `SharedObject`.
|
|
37
37
|
*/
|
|
38
|
-
export
|
|
38
|
+
export type SharedObjectClass<T extends IFluidLoadable> = {
|
|
39
39
|
readonly getFactory: () => IChannelFactory;
|
|
40
40
|
} & LoadableObjectCtor<T>;
|
|
41
41
|
/**
|
|
@@ -43,7 +43,7 @@ export declare type SharedObjectClass<T extends IFluidLoadable> = {
|
|
|
43
43
|
*
|
|
44
44
|
* @typeParam T - The class of the loadable object.
|
|
45
45
|
*/
|
|
46
|
-
export
|
|
46
|
+
export type LoadableObjectCtor<T extends IFluidLoadable> = new (...args: any[]) => T;
|
|
47
47
|
/**
|
|
48
48
|
* Declares the Fluid objects that will be available in the {@link IFluidContainer | Container}.
|
|
49
49
|
*
|
|
@@ -110,7 +110,7 @@ export interface IRootDataObject {
|
|
|
110
110
|
*
|
|
111
111
|
* @see See {@link IServiceAudienceEvents} for usage details.
|
|
112
112
|
*/
|
|
113
|
-
export
|
|
113
|
+
export type MemberChangedListener<M extends IMember> = (clientId: string, member: M) => void;
|
|
114
114
|
/**
|
|
115
115
|
* Events that trigger when the roster of members in the Fluid session change.
|
|
116
116
|
*
|
|
@@ -196,7 +196,7 @@ export interface IMember {
|
|
|
196
196
|
/**
|
|
197
197
|
* An extended member object that includes currentConnection
|
|
198
198
|
*/
|
|
199
|
-
export
|
|
199
|
+
export type Myself<M extends IMember = IMember> = M & {
|
|
200
200
|
currentConnection: string;
|
|
201
201
|
};
|
|
202
202
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rootDataObject.d.ts","sourceRoot":"","sources":["../src/rootDataObject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACN,2BAA2B,EAC3B,UAAU,
|
|
1
|
+
{"version":3,"file":"rootDataObject.d.ts","sourceRoot":"","sources":["../src/rootDataObject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACN,2BAA2B,EAC3B,UAAU,EAIV,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EACN,eAAe,EAEf,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EAEpB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;;;OAIG;IACH,cAAc,EAAE,yBAAyB,CAAC;CAC1C;AAED;;;GAGG;AACH,qBAAa,cACZ,SAAQ,UAAU,CAAC;IAAE,YAAY,EAAE,mBAAmB,CAAA;CAAE,CACxD,YAAW,eAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAyB;IAC9D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAE5D,OAAO,KAAK,iBAAiB,GAM5B;IAED;;;;;OAKG;cACa,qBAAqB,CAAC,KAAK,EAAE,mBAAmB;IAgBhE;;;;;OAKG;cACa,cAAc;IAc9B;;OAEG;IACH,IAAW,cAAc,IAAI,oBAAoB,CAKhD;IAED;;OAEG;IACU,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAShF,gBAAgB;IAU9B,OAAO,CAAC,kBAAkB;CAO1B;AAID;;;;;;;GAOG;AACH,qBAAa,iCAAkC,SAAQ,2BAA2B;IACjF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAKpC;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;gBAE/C,MAAM,EAAE,eAAe;IA6BnC;;OAEG;cACa,8BAA8B,CAAC,OAAO,EAAE,iBAAiB;CAMzE"}
|
package/lib/rootDataObject.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { BaseContainerRuntimeFactory, DataObject, DataObjectFactory,
|
|
5
|
+
import { BaseContainerRuntimeFactory, DataObject, DataObjectFactory,
|
|
6
|
+
// eslint-disable-next-line import/no-deprecated
|
|
7
|
+
defaultRouteRequestHandler, } from "@fluidframework/aqueduct";
|
|
6
8
|
import { FlushMode } from "@fluidframework/runtime-definitions";
|
|
7
9
|
import { isDataObjectClass, isSharedObjectClass, parseDataObjectsFromSharedObjects } from "./utils";
|
|
8
10
|
/**
|
|
@@ -84,7 +86,7 @@ export class RootDataObject extends DataObject {
|
|
|
84
86
|
const factory = dataObjectClass.factory;
|
|
85
87
|
const packagePath = [...this.context.packagePath, factory.type];
|
|
86
88
|
const dataStore = await this.context.containerRuntime.createDataStore(packagePath);
|
|
87
|
-
const entryPoint = await dataStore.entryPoint
|
|
89
|
+
const entryPoint = await dataStore.entryPoint.get();
|
|
88
90
|
return entryPoint;
|
|
89
91
|
}
|
|
90
92
|
createSharedObject(sharedObjectClass) {
|
|
@@ -106,10 +108,21 @@ export class DOProviderContainerRuntimeFactory extends BaseContainerRuntimeFacto
|
|
|
106
108
|
constructor(schema) {
|
|
107
109
|
const [registryEntries, sharedObjects] = parseDataObjectsFromSharedObjects(schema);
|
|
108
110
|
const rootDataObjectFactory = new DataObjectFactory("rootDO", RootDataObject, sharedObjects, {}, registryEntries);
|
|
109
|
-
super(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
super({
|
|
112
|
+
registryEntries: [rootDataObjectFactory.registryEntry],
|
|
113
|
+
// eslint-disable-next-line import/no-deprecated
|
|
114
|
+
requestHandlers: [defaultRouteRequestHandler(rootDataStoreId)],
|
|
115
|
+
// temporary workaround to disable message batching until the message batch size issue is resolved
|
|
116
|
+
// resolution progress is tracked by the Feature 465 work item in AzDO
|
|
117
|
+
runtimeOptions: { flushMode: FlushMode.Immediate },
|
|
118
|
+
provideEntryPoint: async (containerRuntime) => {
|
|
119
|
+
const entryPoint = await containerRuntime.getAliasedDataStoreEntryPoint(rootDataStoreId);
|
|
120
|
+
if (entryPoint === undefined) {
|
|
121
|
+
throw new Error(`default dataStore [${rootDataStoreId}] must exist`);
|
|
122
|
+
}
|
|
123
|
+
return entryPoint.get();
|
|
124
|
+
},
|
|
125
|
+
});
|
|
113
126
|
this.rootDataObjectFactory = rootDataObjectFactory;
|
|
114
127
|
this.initialObjects = schema.initialObjects;
|
|
115
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rootDataObject.js","sourceRoot":"","sources":["../src/rootDataObject.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport {\n\tBaseContainerRuntimeFactory,\n\tDataObject,\n\tDataObjectFactory,\n\tdefaultRouteRequestHandler,\n} from \"@fluidframework/aqueduct\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport { IFluidLoadable } from \"@fluidframework/core-interfaces\";\nimport { FlushMode } from \"@fluidframework/runtime-definitions\";\nimport {\n\tContainerSchema,\n\tDataObjectClass,\n\tIRootDataObject,\n\tLoadableObjectClass,\n\tLoadableObjectClassRecord,\n\tLoadableObjectRecord,\n\tSharedObjectClass,\n} from \"./types\";\nimport { isDataObjectClass, isSharedObjectClass, parseDataObjectsFromSharedObjects } from \"./utils\";\n\n/**\n * Input props for {@link RootDataObject.initializingFirstTime}.\n */\nexport interface RootDataObjectProps {\n\t/**\n\t * Initial object structure with which the {@link RootDataObject} will be first-time initialized.\n\t *\n\t * @see {@link RootDataObject.initializingFirstTime}\n\t */\n\tinitialObjects: LoadableObjectClassRecord;\n}\n\n/**\n * The entry-point/root collaborative object of the {@link IFluidContainer | Fluid Container}.\n * Abstracts the dynamic code required to build a Fluid Container into a static representation for end customers.\n */\nexport class RootDataObject\n\textends DataObject<{ InitialState: RootDataObjectProps }>\n\timplements IRootDataObject\n{\n\tprivate readonly initialObjectsDirKey = \"initial-objects-key\";\n\tprivate readonly _initialObjects: LoadableObjectRecord = {};\n\n\tprivate get initialObjectsDir() {\n\t\tconst dir = this.root.getSubDirectory(this.initialObjectsDirKey);\n\t\tif (dir === undefined) {\n\t\t\tthrow new Error(\"InitialObjects sub-directory was not initialized\");\n\t\t}\n\t\treturn dir;\n\t}\n\n\t/**\n\t * The first time this object is initialized, creates each object identified in\n\t * {@link RootDataObjectProps.initialObjects} and stores them as unique values in the root directory.\n\t *\n\t * @see {@link @fluidframework/aqueduct#PureDataObject.initializingFirstTime}\n\t */\n\tprotected async initializingFirstTime(props: RootDataObjectProps) {\n\t\tthis.root.createSubDirectory(this.initialObjectsDirKey);\n\n\t\t// Create initial objects provided by the developer\n\t\tconst initialObjectsP: Promise<void>[] = [];\n\t\tObject.entries(props.initialObjects).forEach(([id, objectClass]) => {\n\t\t\tconst createObject = async () => {\n\t\t\t\tconst obj = await this.create(objectClass);\n\t\t\t\tthis.initialObjectsDir.set(id, obj.handle);\n\t\t\t};\n\t\t\tinitialObjectsP.push(createObject());\n\t\t});\n\n\t\tawait Promise.all(initialObjectsP);\n\t}\n\n\t/**\n\t * Every time an instance is initialized, loads all of the initial objects in the root directory so they can be\n\t * accessed immediately.\n\t *\n\t * @see {@link @fluidframework/aqueduct#PureDataObject.hasInitialized}\n\t */\n\tprotected async hasInitialized() {\n\t\t// We will always load the initial objects so they are available to the developer\n\t\tconst loadInitialObjectsP: Promise<void>[] = [];\n\t\tfor (const [key, value] of Array.from(this.initialObjectsDir.entries())) {\n\t\t\tconst loadDir = async () => {\n\t\t\t\tconst obj = await value.get();\n\t\t\t\tObject.assign(this._initialObjects, { [key]: obj });\n\t\t\t};\n\t\t\tloadInitialObjectsP.push(loadDir());\n\t\t}\n\n\t\tawait Promise.all(loadInitialObjectsP);\n\t}\n\n\t/**\n\t * {@inheritDoc IRootDataObject.initialObjects}\n\t */\n\tpublic get initialObjects(): LoadableObjectRecord {\n\t\tif (Object.keys(this._initialObjects).length === 0) {\n\t\t\tthrow new Error(\"Initial Objects were not correctly initialized\");\n\t\t}\n\t\treturn this._initialObjects;\n\t}\n\n\t/**\n\t * {@inheritDoc IRootDataObject.create}\n\t */\n\tpublic async create<T extends IFluidLoadable>(objectClass: LoadableObjectClass<T>): Promise<T> {\n\t\tif (isDataObjectClass(objectClass)) {\n\t\t\treturn this.createDataObject<T>(objectClass);\n\t\t} else if (isSharedObjectClass(objectClass)) {\n\t\t\treturn this.createSharedObject<T>(objectClass);\n\t\t}\n\t\tthrow new Error(\"Could not create new Fluid object because an unknown object was passed\");\n\t}\n\n\tprivate async createDataObject<T extends IFluidLoadable>(\n\t\tdataObjectClass: DataObjectClass<T>,\n\t): Promise<T> {\n\t\tconst factory = dataObjectClass.factory;\n\t\tconst packagePath = [...this.context.packagePath, factory.type];\n\t\tconst dataStore = await this.context.containerRuntime.createDataStore(packagePath);\n\t\tconst entryPoint = await dataStore.entryPoint?.get();\n\t\treturn entryPoint as unknown as T;\n\t}\n\n\tprivate createSharedObject<T extends IFluidLoadable>(\n\t\tsharedObjectClass: SharedObjectClass<T>,\n\t): T {\n\t\tconst factory = sharedObjectClass.getFactory();\n\t\tconst obj = this.runtime.createChannel(undefined, factory.type);\n\t\treturn obj as unknown as T;\n\t}\n}\n\nconst rootDataStoreId = \"rootDOId\";\n\n/**\n * Container code that provides a single {@link IRootDataObject}.\n *\n * @remarks\n *\n * This data object is dynamically customized (registry and initial objects) based on the schema provided.\n * to the container runtime factory.\n */\nexport class DOProviderContainerRuntimeFactory extends BaseContainerRuntimeFactory {\n\tprivate readonly rootDataObjectFactory: DataObjectFactory<\n\t\tRootDataObject,\n\t\t{\n\t\t\tInitialState: RootDataObjectProps;\n\t\t}\n\t>;\n\n\tprivate readonly initialObjects: LoadableObjectClassRecord;\n\n\tconstructor(schema: ContainerSchema) {\n\t\tconst [registryEntries, sharedObjects] = parseDataObjectsFromSharedObjects(schema);\n\t\tconst rootDataObjectFactory = new DataObjectFactory(\n\t\t\t\"rootDO\",\n\t\t\tRootDataObject,\n\t\t\tsharedObjects,\n\t\t\t{},\n\t\t\tregistryEntries,\n\t\t);\n\t\tsuper(\n\t\t\t[rootDataObjectFactory.registryEntry],\n\t\t\tundefined,\n\t\t\t[defaultRouteRequestHandler(rootDataStoreId)],\n\t\t\t// temporary workaround to disable message batching until the message batch size issue is resolved\n\t\t\t// resolution progress is tracked by the Feature 465 work item in AzDO\n\t\t\t{ flushMode: FlushMode.Immediate },\n\t\t);\n\t\tthis.rootDataObjectFactory = rootDataObjectFactory;\n\t\tthis.initialObjects = schema.initialObjects;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/aqueduct#BaseContainerRuntimeFactory.containerInitializingFirstTime}\n\t */\n\tprotected async containerInitializingFirstTime(runtime: IContainerRuntime) {\n\t\t// The first time we create the container we create the RootDataObject\n\t\tawait this.rootDataObjectFactory.createRootInstance(rootDataStoreId, runtime, {\n\t\t\tinitialObjects: this.initialObjects,\n\t\t});\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"rootDataObject.js","sourceRoot":"","sources":["../src/rootDataObject.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport {\n\tBaseContainerRuntimeFactory,\n\tDataObject,\n\tDataObjectFactory,\n\t// eslint-disable-next-line import/no-deprecated\n\tdefaultRouteRequestHandler,\n} from \"@fluidframework/aqueduct\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport { IFluidLoadable } from \"@fluidframework/core-interfaces\";\nimport { FlushMode } from \"@fluidframework/runtime-definitions\";\nimport {\n\tContainerSchema,\n\tDataObjectClass,\n\tIRootDataObject,\n\tLoadableObjectClass,\n\tLoadableObjectClassRecord,\n\tLoadableObjectRecord,\n\tSharedObjectClass,\n} from \"./types\";\nimport { isDataObjectClass, isSharedObjectClass, parseDataObjectsFromSharedObjects } from \"./utils\";\n\n/**\n * Input props for {@link RootDataObject.initializingFirstTime}.\n */\nexport interface RootDataObjectProps {\n\t/**\n\t * Initial object structure with which the {@link RootDataObject} will be first-time initialized.\n\t *\n\t * @see {@link RootDataObject.initializingFirstTime}\n\t */\n\tinitialObjects: LoadableObjectClassRecord;\n}\n\n/**\n * The entry-point/root collaborative object of the {@link IFluidContainer | Fluid Container}.\n * Abstracts the dynamic code required to build a Fluid Container into a static representation for end customers.\n */\nexport class RootDataObject\n\textends DataObject<{ InitialState: RootDataObjectProps }>\n\timplements IRootDataObject\n{\n\tprivate readonly initialObjectsDirKey = \"initial-objects-key\";\n\tprivate readonly _initialObjects: LoadableObjectRecord = {};\n\n\tprivate get initialObjectsDir() {\n\t\tconst dir = this.root.getSubDirectory(this.initialObjectsDirKey);\n\t\tif (dir === undefined) {\n\t\t\tthrow new Error(\"InitialObjects sub-directory was not initialized\");\n\t\t}\n\t\treturn dir;\n\t}\n\n\t/**\n\t * The first time this object is initialized, creates each object identified in\n\t * {@link RootDataObjectProps.initialObjects} and stores them as unique values in the root directory.\n\t *\n\t * @see {@link @fluidframework/aqueduct#PureDataObject.initializingFirstTime}\n\t */\n\tprotected async initializingFirstTime(props: RootDataObjectProps) {\n\t\tthis.root.createSubDirectory(this.initialObjectsDirKey);\n\n\t\t// Create initial objects provided by the developer\n\t\tconst initialObjectsP: Promise<void>[] = [];\n\t\tObject.entries(props.initialObjects).forEach(([id, objectClass]) => {\n\t\t\tconst createObject = async () => {\n\t\t\t\tconst obj = await this.create(objectClass);\n\t\t\t\tthis.initialObjectsDir.set(id, obj.handle);\n\t\t\t};\n\t\t\tinitialObjectsP.push(createObject());\n\t\t});\n\n\t\tawait Promise.all(initialObjectsP);\n\t}\n\n\t/**\n\t * Every time an instance is initialized, loads all of the initial objects in the root directory so they can be\n\t * accessed immediately.\n\t *\n\t * @see {@link @fluidframework/aqueduct#PureDataObject.hasInitialized}\n\t */\n\tprotected async hasInitialized() {\n\t\t// We will always load the initial objects so they are available to the developer\n\t\tconst loadInitialObjectsP: Promise<void>[] = [];\n\t\tfor (const [key, value] of Array.from(this.initialObjectsDir.entries())) {\n\t\t\tconst loadDir = async () => {\n\t\t\t\tconst obj = await value.get();\n\t\t\t\tObject.assign(this._initialObjects, { [key]: obj });\n\t\t\t};\n\t\t\tloadInitialObjectsP.push(loadDir());\n\t\t}\n\n\t\tawait Promise.all(loadInitialObjectsP);\n\t}\n\n\t/**\n\t * {@inheritDoc IRootDataObject.initialObjects}\n\t */\n\tpublic get initialObjects(): LoadableObjectRecord {\n\t\tif (Object.keys(this._initialObjects).length === 0) {\n\t\t\tthrow new Error(\"Initial Objects were not correctly initialized\");\n\t\t}\n\t\treturn this._initialObjects;\n\t}\n\n\t/**\n\t * {@inheritDoc IRootDataObject.create}\n\t */\n\tpublic async create<T extends IFluidLoadable>(objectClass: LoadableObjectClass<T>): Promise<T> {\n\t\tif (isDataObjectClass(objectClass)) {\n\t\t\treturn this.createDataObject<T>(objectClass);\n\t\t} else if (isSharedObjectClass(objectClass)) {\n\t\t\treturn this.createSharedObject<T>(objectClass);\n\t\t}\n\t\tthrow new Error(\"Could not create new Fluid object because an unknown object was passed\");\n\t}\n\n\tprivate async createDataObject<T extends IFluidLoadable>(\n\t\tdataObjectClass: DataObjectClass<T>,\n\t): Promise<T> {\n\t\tconst factory = dataObjectClass.factory;\n\t\tconst packagePath = [...this.context.packagePath, factory.type];\n\t\tconst dataStore = await this.context.containerRuntime.createDataStore(packagePath);\n\t\tconst entryPoint = await dataStore.entryPoint.get();\n\t\treturn entryPoint as unknown as T;\n\t}\n\n\tprivate createSharedObject<T extends IFluidLoadable>(\n\t\tsharedObjectClass: SharedObjectClass<T>,\n\t): T {\n\t\tconst factory = sharedObjectClass.getFactory();\n\t\tconst obj = this.runtime.createChannel(undefined, factory.type);\n\t\treturn obj as unknown as T;\n\t}\n}\n\nconst rootDataStoreId = \"rootDOId\";\n\n/**\n * Container code that provides a single {@link IRootDataObject}.\n *\n * @remarks\n *\n * This data object is dynamically customized (registry and initial objects) based on the schema provided.\n * to the container runtime factory.\n */\nexport class DOProviderContainerRuntimeFactory extends BaseContainerRuntimeFactory {\n\tprivate readonly rootDataObjectFactory: DataObjectFactory<\n\t\tRootDataObject,\n\t\t{\n\t\t\tInitialState: RootDataObjectProps;\n\t\t}\n\t>;\n\n\tprivate readonly initialObjects: LoadableObjectClassRecord;\n\n\tconstructor(schema: ContainerSchema) {\n\t\tconst [registryEntries, sharedObjects] = parseDataObjectsFromSharedObjects(schema);\n\t\tconst rootDataObjectFactory = new DataObjectFactory(\n\t\t\t\"rootDO\",\n\t\t\tRootDataObject,\n\t\t\tsharedObjects,\n\t\t\t{},\n\t\t\tregistryEntries,\n\t\t);\n\t\tsuper({\n\t\t\tregistryEntries: [rootDataObjectFactory.registryEntry],\n\t\t\t// eslint-disable-next-line import/no-deprecated\n\t\t\trequestHandlers: [defaultRouteRequestHandler(rootDataStoreId)],\n\t\t\t// temporary workaround to disable message batching until the message batch size issue is resolved\n\t\t\t// resolution progress is tracked by the Feature 465 work item in AzDO\n\t\t\truntimeOptions: { flushMode: FlushMode.Immediate },\n\t\t\tprovideEntryPoint: async (containerRuntime: IContainerRuntime) => {\n\t\t\t\tconst entryPoint =\n\t\t\t\t\tawait containerRuntime.getAliasedDataStoreEntryPoint(rootDataStoreId);\n\t\t\t\tif (entryPoint === undefined) {\n\t\t\t\t\tthrow new Error(`default dataStore [${rootDataStoreId}] must exist`);\n\t\t\t\t}\n\t\t\t\treturn entryPoint.get();\n\t\t\t},\n\t\t});\n\t\tthis.rootDataObjectFactory = rootDataObjectFactory;\n\t\tthis.initialObjects = schema.initialObjects;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/aqueduct#BaseContainerRuntimeFactory.containerInitializingFirstTime}\n\t */\n\tprotected async containerInitializingFirstTime(runtime: IContainerRuntime) {\n\t\t// The first time we create the container we create the RootDataObject\n\t\tawait this.rootDataObjectFactory.createRootInstance(rootDataStoreId, runtime, {\n\t\t\tinitialObjects: this.initialObjects,\n\t\t});\n\t}\n}\n"]}
|
package/lib/types.d.ts
CHANGED
|
@@ -8,25 +8,25 @@ import { IFluidDataStoreFactory } from "@fluidframework/runtime-definitions";
|
|
|
8
8
|
/**
|
|
9
9
|
* A mapping of string identifiers to instantiated `DataObject`s or `SharedObject`s.
|
|
10
10
|
*/
|
|
11
|
-
export
|
|
11
|
+
export type LoadableObjectRecord = Record<string, IFluidLoadable>;
|
|
12
12
|
/**
|
|
13
13
|
* A mapping of string identifiers to classes that will later be used to instantiate a corresponding `DataObject`
|
|
14
14
|
* or `SharedObject` in a {@link LoadableObjectRecord}.
|
|
15
15
|
*/
|
|
16
|
-
export
|
|
16
|
+
export type LoadableObjectClassRecord = Record<string, LoadableObjectClass<any>>;
|
|
17
17
|
/**
|
|
18
18
|
* A class object of `DataObject` or `SharedObject`.
|
|
19
19
|
*
|
|
20
20
|
* @typeParam T - The class of the `DataObject` or `SharedObject`.
|
|
21
21
|
*/
|
|
22
|
-
export
|
|
22
|
+
export type LoadableObjectClass<T extends IFluidLoadable> = DataObjectClass<T> | SharedObjectClass<T>;
|
|
23
23
|
/**
|
|
24
24
|
* A class that has a factory that can create a `DataObject` and a
|
|
25
25
|
* constructor that will return the type of the `DataObject`.
|
|
26
26
|
*
|
|
27
27
|
* @typeParam T - The class of the `DataObject`.
|
|
28
28
|
*/
|
|
29
|
-
export
|
|
29
|
+
export type DataObjectClass<T extends IFluidLoadable> = {
|
|
30
30
|
readonly factory: IFluidDataStoreFactory;
|
|
31
31
|
} & LoadableObjectCtor<T>;
|
|
32
32
|
/**
|
|
@@ -35,7 +35,7 @@ export declare type DataObjectClass<T extends IFluidLoadable> = {
|
|
|
35
35
|
*
|
|
36
36
|
* @typeParam T - The class of the `SharedObject`.
|
|
37
37
|
*/
|
|
38
|
-
export
|
|
38
|
+
export type SharedObjectClass<T extends IFluidLoadable> = {
|
|
39
39
|
readonly getFactory: () => IChannelFactory;
|
|
40
40
|
} & LoadableObjectCtor<T>;
|
|
41
41
|
/**
|
|
@@ -43,7 +43,7 @@ export declare type SharedObjectClass<T extends IFluidLoadable> = {
|
|
|
43
43
|
*
|
|
44
44
|
* @typeParam T - The class of the loadable object.
|
|
45
45
|
*/
|
|
46
|
-
export
|
|
46
|
+
export type LoadableObjectCtor<T extends IFluidLoadable> = new (...args: any[]) => T;
|
|
47
47
|
/**
|
|
48
48
|
* Declares the Fluid objects that will be available in the {@link IFluidContainer | Container}.
|
|
49
49
|
*
|
|
@@ -110,7 +110,7 @@ export interface IRootDataObject {
|
|
|
110
110
|
*
|
|
111
111
|
* @see See {@link IServiceAudienceEvents} for usage details.
|
|
112
112
|
*/
|
|
113
|
-
export
|
|
113
|
+
export type MemberChangedListener<M extends IMember> = (clientId: string, member: M) => void;
|
|
114
114
|
/**
|
|
115
115
|
* Events that trigger when the roster of members in the Fluid session change.
|
|
116
116
|
*
|
|
@@ -196,7 +196,7 @@ export interface IMember {
|
|
|
196
196
|
/**
|
|
197
197
|
* An extended member object that includes currentConnection
|
|
198
198
|
*/
|
|
199
|
-
export
|
|
199
|
+
export type Myself<M extends IMember = IMember> = M & {
|
|
200
200
|
currentConnection: string;
|
|
201
201
|
};
|
|
202
202
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/fluid-static",
|
|
3
|
-
"version": "2.0.0-internal.
|
|
3
|
+
"version": "2.0.0-internal.7.1.0",
|
|
4
4
|
"description": "A tool to enable consumption of Fluid Data Objects without requiring custom container code.",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -35,41 +35,41 @@
|
|
|
35
35
|
"temp-directory": "nyc/.nyc_output"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@fluid-internal/client-utils": ">=2.0.0-internal.
|
|
39
|
-
"@fluidframework/aqueduct": ">=2.0.0-internal.
|
|
40
|
-
"@fluidframework/container-definitions": ">=2.0.0-internal.
|
|
41
|
-
"@fluidframework/container-loader": ">=2.0.0-internal.
|
|
42
|
-
"@fluidframework/container-runtime-definitions": ">=2.0.0-internal.
|
|
43
|
-
"@fluidframework/core-interfaces": ">=2.0.0-internal.
|
|
44
|
-
"@fluidframework/datastore-definitions": ">=2.0.0-internal.
|
|
45
|
-
"@fluidframework/protocol-definitions": "^
|
|
46
|
-
"@fluidframework/request-handler": ">=2.0.0-internal.
|
|
47
|
-
"@fluidframework/runtime-definitions": ">=2.0.0-internal.
|
|
48
|
-
"@fluidframework/runtime-utils": ">=2.0.0-internal.
|
|
38
|
+
"@fluid-internal/client-utils": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
39
|
+
"@fluidframework/aqueduct": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
40
|
+
"@fluidframework/container-definitions": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
41
|
+
"@fluidframework/container-loader": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
42
|
+
"@fluidframework/container-runtime-definitions": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
43
|
+
"@fluidframework/core-interfaces": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
44
|
+
"@fluidframework/datastore-definitions": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
45
|
+
"@fluidframework/protocol-definitions": "^3.0.0",
|
|
46
|
+
"@fluidframework/request-handler": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
47
|
+
"@fluidframework/runtime-definitions": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
48
|
+
"@fluidframework/runtime-utils": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@fluid-tools/build-cli": "^0.
|
|
52
|
-
"@fluidframework/build-common": "^2.0.
|
|
53
|
-
"@fluidframework/build-tools": "^0.
|
|
54
|
-
"@fluidframework/eslint-config-fluid": "^
|
|
55
|
-
"@fluidframework/fluid-static-previous": "npm:@fluidframework/fluid-static@2.0.0-internal.
|
|
56
|
-
"@fluidframework/map": ">=2.0.0-internal.
|
|
57
|
-
"@fluidframework/mocha-test-setup": ">=2.0.0-internal.
|
|
58
|
-
"@fluidframework/sequence": ">=2.0.0-internal.
|
|
59
|
-
"@microsoft/api-extractor": "^7.
|
|
51
|
+
"@fluid-tools/build-cli": "^0.25.0",
|
|
52
|
+
"@fluidframework/build-common": "^2.0.1",
|
|
53
|
+
"@fluidframework/build-tools": "^0.25.0",
|
|
54
|
+
"@fluidframework/eslint-config-fluid": "^3.0.0",
|
|
55
|
+
"@fluidframework/fluid-static-previous": "npm:@fluidframework/fluid-static@2.0.0-internal.7.0.0",
|
|
56
|
+
"@fluidframework/map": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
57
|
+
"@fluidframework/mocha-test-setup": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
58
|
+
"@fluidframework/sequence": ">=2.0.0-internal.7.1.0 <2.0.0-internal.7.2.0",
|
|
59
|
+
"@microsoft/api-extractor": "^7.37.0",
|
|
60
60
|
"@types/mocha": "^9.1.1",
|
|
61
61
|
"@types/node": "^16.18.38",
|
|
62
62
|
"c8": "^7.7.1",
|
|
63
63
|
"copyfiles": "^2.4.1",
|
|
64
64
|
"cross-env": "^7.0.3",
|
|
65
|
-
"eslint": "~8.
|
|
65
|
+
"eslint": "~8.50.0",
|
|
66
66
|
"mocha": "^10.2.0",
|
|
67
67
|
"mocha-json-output-reporter": "^2.0.1",
|
|
68
68
|
"mocha-multi-reporters": "^1.5.1",
|
|
69
69
|
"moment": "^2.21.0",
|
|
70
|
-
"prettier": "~
|
|
70
|
+
"prettier": "~3.0.3",
|
|
71
71
|
"rimraf": "^4.4.0",
|
|
72
|
-
"typescript": "~
|
|
72
|
+
"typescript": "~5.1.6"
|
|
73
73
|
},
|
|
74
74
|
"typeValidation": {
|
|
75
75
|
"broken": {}
|
|
@@ -78,10 +78,10 @@
|
|
|
78
78
|
"build": "fluid-build . --task build",
|
|
79
79
|
"build:commonjs": "fluid-build . --task commonjs",
|
|
80
80
|
"build:compile": "fluid-build . --task compile",
|
|
81
|
-
"build:docs": "api-extractor run --local
|
|
81
|
+
"build:docs": "api-extractor run --local",
|
|
82
82
|
"build:esnext": "tsc --project ./tsconfig.esnext.json",
|
|
83
83
|
"build:test": "tsc --project ./src/test/tsconfig.json",
|
|
84
|
-
"ci:build:docs": "api-extractor run
|
|
84
|
+
"ci:build:docs": "api-extractor run",
|
|
85
85
|
"clean": "rimraf --glob 'dist' 'lib' '*.tsbuildinfo' '*.build.log' '_api-extractor-temp' 'nyc'",
|
|
86
86
|
"eslint": "eslint --format stylish src",
|
|
87
87
|
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
|
package/src/rootDataObject.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
BaseContainerRuntimeFactory,
|
|
7
7
|
DataObject,
|
|
8
8
|
DataObjectFactory,
|
|
9
|
+
// eslint-disable-next-line import/no-deprecated
|
|
9
10
|
defaultRouteRequestHandler,
|
|
10
11
|
} from "@fluidframework/aqueduct";
|
|
11
12
|
import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
|
|
@@ -123,7 +124,7 @@ export class RootDataObject
|
|
|
123
124
|
const factory = dataObjectClass.factory;
|
|
124
125
|
const packagePath = [...this.context.packagePath, factory.type];
|
|
125
126
|
const dataStore = await this.context.containerRuntime.createDataStore(packagePath);
|
|
126
|
-
const entryPoint = await dataStore.entryPoint
|
|
127
|
+
const entryPoint = await dataStore.entryPoint.get();
|
|
127
128
|
return entryPoint as unknown as T;
|
|
128
129
|
}
|
|
129
130
|
|
|
@@ -165,14 +166,22 @@ export class DOProviderContainerRuntimeFactory extends BaseContainerRuntimeFacto
|
|
|
165
166
|
{},
|
|
166
167
|
registryEntries,
|
|
167
168
|
);
|
|
168
|
-
super(
|
|
169
|
-
[rootDataObjectFactory.registryEntry],
|
|
170
|
-
|
|
171
|
-
[defaultRouteRequestHandler(rootDataStoreId)],
|
|
169
|
+
super({
|
|
170
|
+
registryEntries: [rootDataObjectFactory.registryEntry],
|
|
171
|
+
// eslint-disable-next-line import/no-deprecated
|
|
172
|
+
requestHandlers: [defaultRouteRequestHandler(rootDataStoreId)],
|
|
172
173
|
// temporary workaround to disable message batching until the message batch size issue is resolved
|
|
173
174
|
// resolution progress is tracked by the Feature 465 work item in AzDO
|
|
174
|
-
{ flushMode: FlushMode.Immediate },
|
|
175
|
-
|
|
175
|
+
runtimeOptions: { flushMode: FlushMode.Immediate },
|
|
176
|
+
provideEntryPoint: async (containerRuntime: IContainerRuntime) => {
|
|
177
|
+
const entryPoint =
|
|
178
|
+
await containerRuntime.getAliasedDataStoreEntryPoint(rootDataStoreId);
|
|
179
|
+
if (entryPoint === undefined) {
|
|
180
|
+
throw new Error(`default dataStore [${rootDataStoreId}] must exist`);
|
|
181
|
+
}
|
|
182
|
+
return entryPoint.get();
|
|
183
|
+
},
|
|
184
|
+
});
|
|
176
185
|
this.rootDataObjectFactory = rootDataObjectFactory;
|
|
177
186
|
this.initialObjects = schema.initialObjects;
|
|
178
187
|
}
|