@fluidframework/shared-object-base 2.0.0-dev.2.3.0.115467 → 2.0.0-dev.4.1.0.148229

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.
Files changed (75) hide show
  1. package/.eslintrc.js +5 -8
  2. package/.mocharc.js +2 -2
  3. package/README.md +1 -1
  4. package/api-extractor.json +2 -2
  5. package/bench/src/index.ts +37 -33
  6. package/bench/src/util.ts +26 -26
  7. package/dist/handle.d.ts.map +1 -1
  8. package/dist/handle.js.map +1 -1
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/packageVersion.d.ts +1 -1
  13. package/dist/packageVersion.js +1 -1
  14. package/dist/packageVersion.js.map +1 -1
  15. package/dist/remoteObjectHandle.d.ts.map +1 -1
  16. package/dist/remoteObjectHandle.js +16 -8
  17. package/dist/remoteObjectHandle.js.map +1 -1
  18. package/dist/serializer.d.ts.map +1 -1
  19. package/dist/serializer.js +5 -7
  20. package/dist/serializer.js.map +1 -1
  21. package/dist/sharedObject.d.ts +3 -3
  22. package/dist/sharedObject.d.ts.map +1 -1
  23. package/dist/sharedObject.js +26 -9
  24. package/dist/sharedObject.js.map +1 -1
  25. package/dist/summarySerializer.d.ts.map +1 -1
  26. package/dist/summarySerializer.js.map +1 -1
  27. package/dist/types.d.ts.map +1 -1
  28. package/dist/types.js.map +1 -1
  29. package/dist/utils.d.ts.map +1 -1
  30. package/dist/utils.js +1 -3
  31. package/dist/utils.js.map +1 -1
  32. package/dist/valueType.d.ts.map +1 -1
  33. package/dist/valueType.js.map +1 -1
  34. package/lib/handle.d.ts.map +1 -1
  35. package/lib/handle.js.map +1 -1
  36. package/lib/index.d.ts +2 -2
  37. package/lib/index.d.ts.map +1 -1
  38. package/lib/index.js +2 -2
  39. package/lib/index.js.map +1 -1
  40. package/lib/packageVersion.d.ts +1 -1
  41. package/lib/packageVersion.js +1 -1
  42. package/lib/packageVersion.js.map +1 -1
  43. package/lib/remoteObjectHandle.d.ts.map +1 -1
  44. package/lib/remoteObjectHandle.js +17 -9
  45. package/lib/remoteObjectHandle.js.map +1 -1
  46. package/lib/serializer.d.ts.map +1 -1
  47. package/lib/serializer.js +5 -7
  48. package/lib/serializer.js.map +1 -1
  49. package/lib/sharedObject.d.ts +3 -3
  50. package/lib/sharedObject.d.ts.map +1 -1
  51. package/lib/sharedObject.js +26 -9
  52. package/lib/sharedObject.js.map +1 -1
  53. package/lib/summarySerializer.d.ts.map +1 -1
  54. package/lib/summarySerializer.js.map +1 -1
  55. package/lib/types.d.ts.map +1 -1
  56. package/lib/types.js.map +1 -1
  57. package/lib/utils.d.ts.map +1 -1
  58. package/lib/utils.js +1 -3
  59. package/lib/utils.js.map +1 -1
  60. package/lib/valueType.d.ts.map +1 -1
  61. package/lib/valueType.js.map +1 -1
  62. package/package.json +58 -58
  63. package/prettier.config.cjs +1 -1
  64. package/src/handle.ts +28 -28
  65. package/src/index.ts +12 -2
  66. package/src/packageVersion.ts +1 -1
  67. package/src/remoteObjectHandle.ts +70 -55
  68. package/src/serializer.ts +182 -187
  69. package/src/sharedObject.ts +709 -636
  70. package/src/summarySerializer.ts +8 -8
  71. package/src/types.ts +50 -32
  72. package/src/utils.ts +20 -26
  73. package/src/valueType.ts +9 -9
  74. package/tsconfig.esnext.json +6 -6
  75. package/tsconfig.json +8 -12
@@ -10,13 +10,13 @@ import { FluidSerializer } from "./serializer";
10
10
  * Serializer implementation for serializing handles during summary.
11
11
  */
12
12
  export class SummarySerializer extends FluidSerializer {
13
- private readonly serializedRoutes: Set<string> = new Set();
14
- public getSerializedRoutes(): string[] {
15
- return Array.from(this.serializedRoutes);
16
- }
13
+ private readonly serializedRoutes: Set<string> = new Set();
14
+ public getSerializedRoutes(): string[] {
15
+ return Array.from(this.serializedRoutes);
16
+ }
17
17
 
18
- protected serializeHandle(handle: IFluidHandle, bind: IFluidHandle) {
19
- this.serializedRoutes.add(handle.absolutePath);
20
- return super.serializeHandle(handle, bind);
21
- }
18
+ protected serializeHandle(handle: IFluidHandle, bind: IFluidHandle) {
19
+ this.serializedRoutes.add(handle.absolutePath);
20
+ return super.serializeHandle(handle, bind);
21
+ }
22
22
  }
package/src/types.ts CHANGED
@@ -3,7 +3,11 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { IErrorEvent, IEventProvider, IEventThisPlaceHolder } from "@fluidframework/common-definitions";
6
+ import {
7
+ IErrorEvent,
8
+ IEventProvider,
9
+ IEventThisPlaceHolder,
10
+ } from "@fluidframework/common-definitions";
7
11
  import { IChannel } from "@fluidframework/datastore-definitions";
8
12
  import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
9
13
  import { IGarbageCollectionData } from "@fluidframework/runtime-definitions";
@@ -12,43 +16,57 @@ import { IGarbageCollectionData } from "@fluidframework/runtime-definitions";
12
16
  * Events emitted by {@link ISharedObject}.
13
17
  */
14
18
  export interface ISharedObjectEvents extends IErrorEvent {
15
- /**
16
- * Fires before an incoming operation (op) is applied to the shared object.
17
- *
18
- * @remarks Note: this should be considered an internal implementation detail. It is not recommended for external
19
- * use.
20
- *
21
- * @eventProperty
22
- */
23
- (event: "pre-op", listener: (op: ISequencedDocumentMessage, local: boolean, target: IEventThisPlaceHolder) => void);
19
+ /**
20
+ * Fires before an incoming operation (op) is applied to the shared object.
21
+ *
22
+ * @remarks Note: this should be considered an internal implementation detail. It is not recommended for external
23
+ * use.
24
+ *
25
+ * @eventProperty
26
+ */
27
+ (
28
+ event: "pre-op",
29
+ listener: (
30
+ op: ISequencedDocumentMessage,
31
+ local: boolean,
32
+ target: IEventThisPlaceHolder,
33
+ ) => void,
34
+ );
24
35
 
25
- /**
26
- * Fires after an incoming op is applied to the shared object.
27
- *
28
- * @remarks Note: this should be considered an internal implementation detail. It is not recommended for external
29
- * use.
30
- *
31
- * @eventProperty
32
- */
33
- // eslint-disable-next-line @typescript-eslint/unified-signatures
34
- (event: "op", listener: (op: ISequencedDocumentMessage, local: boolean, target: IEventThisPlaceHolder) => void);
36
+ /**
37
+ * Fires after an incoming op is applied to the shared object.
38
+ *
39
+ * @remarks Note: this should be considered an internal implementation detail. It is not recommended for external
40
+ * use.
41
+ *
42
+ * @eventProperty
43
+ */
44
+ (
45
+ event: "op",
46
+ listener: (
47
+ op: ISequencedDocumentMessage,
48
+ local: boolean,
49
+ target: IEventThisPlaceHolder,
50
+ ) => void,
51
+ );
35
52
  }
36
53
 
37
54
  /**
38
55
  * Base interface for shared objects from which other interfaces derive. Implemented by SharedObject
39
56
  */
40
57
  export interface ISharedObject<TEvent extends ISharedObjectEvents = ISharedObjectEvents>
41
- extends IChannel, IEventProvider<TEvent> {
42
- /**
43
- * Binds the given shared object to its containing data store runtime, causing it to attach once
44
- * the runtime attaches.
45
- */
46
- bindToContext(): void;
58
+ extends IChannel,
59
+ IEventProvider<TEvent> {
60
+ /**
61
+ * Binds the given shared object to its containing data store runtime, causing it to attach once
62
+ * the runtime attaches.
63
+ */
64
+ bindToContext(): void;
47
65
 
48
- /**
49
- * Returns the GC data for this shared object. It contains a list of GC nodes that contains references to
50
- * other GC nodes.
51
- * @param fullGC - true to bypass optimizations and force full generation of GC data.
52
- */
53
- getGCData(fullGC?: boolean): IGarbageCollectionData;
66
+ /**
67
+ * Returns the GC data for this shared object. It contains a list of GC nodes that contains references to
68
+ * other GC nodes.
69
+ * @param fullGC - true to bypass optimizations and force full generation of GC data.
70
+ */
71
+ getGCData(fullGC?: boolean): IGarbageCollectionData;
54
72
  }
package/src/utils.ts CHANGED
@@ -18,16 +18,12 @@ import { IFluidSerializer } from "./serializer";
18
18
  * @returns Result of strigifying an object
19
19
  */
20
20
  export function serializeHandles(
21
- value: any,
22
- serializer: IFluidSerializer,
23
- bind: IFluidHandle,
21
+ value: any,
22
+ serializer: IFluidSerializer,
23
+ bind: IFluidHandle,
24
24
  ): string | undefined {
25
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
26
- return value !== undefined
27
- ? serializer.stringify(
28
- value,
29
- bind)
30
- : value;
25
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
26
+ return value !== undefined ? serializer.stringify(value, bind) : value;
31
27
  }
32
28
 
33
29
  /**
@@ -43,14 +39,12 @@ export function serializeHandles(
43
39
  * @returns The fully-plain object
44
40
  */
45
41
  export function makeHandlesSerializable(
46
- value: any,
47
- serializer: IFluidSerializer,
48
- bind: IFluidHandle,
42
+ value: any,
43
+ serializer: IFluidSerializer,
44
+ bind: IFluidHandle,
49
45
  ) {
50
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
51
- return serializer.encode(
52
- value,
53
- bind);
46
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
47
+ return serializer.encode(value, bind);
54
48
  }
55
49
 
56
50
  /**
@@ -61,12 +55,9 @@ export function makeHandlesSerializable(
61
55
  * @param context - The handle context for the container
62
56
  * @returns The mostly-plain object with handle objects within
63
57
  */
64
- export function parseHandles(
65
- value: any,
66
- serializer: IFluidSerializer,
67
- ) {
68
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
69
- return value !== undefined ? serializer.parse(JSON.stringify(value)) : value;
58
+ export function parseHandles(value: any, serializer: IFluidSerializer) {
59
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
60
+ return value !== undefined ? serializer.parse(JSON.stringify(value)) : value;
70
61
  }
71
62
 
72
63
  /**
@@ -75,8 +66,11 @@ export function parseHandles(
75
66
  * @param content - blob content
76
67
  * @returns The summary containing the blob
77
68
  */
78
- export function createSingleBlobSummary(key: string, content: string | Uint8Array): ISummaryTreeWithStats {
79
- const builder = new SummaryTreeBuilder();
80
- builder.addBlob(key, content);
81
- return builder.getSummaryTree();
69
+ export function createSingleBlobSummary(
70
+ key: string,
71
+ content: string | Uint8Array,
72
+ ): ISummaryTreeWithStats {
73
+ const builder = new SummaryTreeBuilder();
74
+ builder.addBlob(key, content);
75
+ return builder.getSummaryTree();
82
76
  }
package/src/valueType.ts CHANGED
@@ -7,14 +7,14 @@
7
7
  * enum representing the possible types of a shared object
8
8
  */
9
9
  export enum ValueType {
10
- /**
11
- * The value is a shared object
12
- * @deprecated Instead store the handle of the shared object, rather than the shared object itself.
13
- */
14
- Shared,
10
+ /**
11
+ * The value is a shared object
12
+ * @deprecated Instead store the handle of the shared object, rather than the shared object itself.
13
+ */
14
+ Shared,
15
15
 
16
- /**
17
- * The value is a plain JavaScript object or handle. If a plain object, it may contain handles deeper within.
18
- */
19
- Plain,
16
+ /**
17
+ * The value is a plain JavaScript object or handle. If a plain object, it may contain handles deeper within.
18
+ */
19
+ Plain,
20
20
  }
@@ -1,7 +1,7 @@
1
1
  {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "./lib",
5
- "module": "esnext"
6
- },
7
- }
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./lib",
5
+ "module": "esnext",
6
+ },
7
+ }
package/tsconfig.json CHANGED
@@ -1,14 +1,10 @@
1
1
  {
2
- "extends": "@fluidframework/build-common/ts-common-config.json",
3
- "exclude": [
4
- "src/test/**/*"
5
- ],
6
- "compilerOptions": {
7
- "rootDir": "./src",
8
- "outDir": "./dist",
9
- "composite": true
10
- },
11
- "include": [
12
- "src/**/*"
13
- ]
2
+ "extends": "@fluidframework/build-common/ts-common-config.json",
3
+ "exclude": ["src/test/**/*"],
4
+ "compilerOptions": {
5
+ "rootDir": "./src",
6
+ "outDir": "./dist",
7
+ "composite": true,
8
+ },
9
+ "include": ["src/**/*"],
14
10
  }