@fluidframework/sequence 0.58.2001 → 0.59.1000-61898

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 (45) hide show
  1. package/README.md +3 -3
  2. package/dist/intervalCollection.d.ts +1 -1
  3. package/dist/intervalCollection.d.ts.map +1 -1
  4. package/dist/intervalCollection.js +34 -16
  5. package/dist/intervalCollection.js.map +1 -1
  6. package/dist/mapKernel.d.ts +8 -1
  7. package/dist/mapKernel.d.ts.map +1 -1
  8. package/dist/mapKernel.js +27 -16
  9. package/dist/mapKernel.js.map +1 -1
  10. package/dist/mapKernelInterfaces.d.ts +1 -1
  11. package/dist/mapKernelInterfaces.d.ts.map +1 -1
  12. package/dist/mapKernelInterfaces.js.map +1 -1
  13. package/dist/packageVersion.d.ts +1 -1
  14. package/dist/packageVersion.d.ts.map +1 -1
  15. package/dist/packageVersion.js +1 -1
  16. package/dist/packageVersion.js.map +1 -1
  17. package/dist/sequence.d.ts +10 -0
  18. package/dist/sequence.d.ts.map +1 -1
  19. package/dist/sequence.js +14 -1
  20. package/dist/sequence.js.map +1 -1
  21. package/lib/intervalCollection.d.ts +1 -1
  22. package/lib/intervalCollection.d.ts.map +1 -1
  23. package/lib/intervalCollection.js +35 -17
  24. package/lib/intervalCollection.js.map +1 -1
  25. package/lib/mapKernel.d.ts +8 -1
  26. package/lib/mapKernel.d.ts.map +1 -1
  27. package/lib/mapKernel.js +27 -16
  28. package/lib/mapKernel.js.map +1 -1
  29. package/lib/mapKernelInterfaces.d.ts +1 -1
  30. package/lib/mapKernelInterfaces.d.ts.map +1 -1
  31. package/lib/mapKernelInterfaces.js.map +1 -1
  32. package/lib/packageVersion.d.ts +1 -1
  33. package/lib/packageVersion.d.ts.map +1 -1
  34. package/lib/packageVersion.js +1 -1
  35. package/lib/packageVersion.js.map +1 -1
  36. package/lib/sequence.d.ts +10 -0
  37. package/lib/sequence.d.ts.map +1 -1
  38. package/lib/sequence.js +14 -1
  39. package/lib/sequence.js.map +1 -1
  40. package/package.json +21 -15
  41. package/src/intervalCollection.ts +29 -19
  42. package/src/mapKernel.ts +39 -21
  43. package/src/mapKernelInterfaces.ts +1 -1
  44. package/src/packageVersion.ts +1 -1
  45. package/src/sequence.ts +17 -1
package/src/sequence.ts CHANGED
@@ -93,6 +93,8 @@ const contentPath = "content";
93
93
  * - `target` - The sequence itself.
94
94
  */
95
95
  export interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
96
+ (event: "createIntervalCollection",
97
+ listener: (label: string, local: boolean, target: IEventThisPlaceHolder) => void);
96
98
  (event: "sequenceDelta", listener: (event: SequenceDeltaEvent, target: IEventThisPlaceHolder) => void);
97
99
  (event: "maintenance",
98
100
  listener: (event: SequenceMaintenanceEvent, target: IEventThisPlaceHolder) => void);
@@ -427,6 +429,18 @@ export abstract class SharedSegmentSequence<T extends ISegment>
427
429
  return sharedCollection;
428
430
  }
429
431
 
432
+ /**
433
+ * @returns an iterable object that enumerates the IntervalCollection labels
434
+ * Usage:
435
+ * const iter = this.getIntervalCollectionKeys();
436
+ * for (key of iter)
437
+ * const collection = this.getIntervalCollection(key);
438
+ * ...
439
+ */
440
+ public getIntervalCollectionLabels(): IterableIterator<string> {
441
+ return this.intervalMapKernel.keys();
442
+ }
443
+
430
444
  protected summarizeCore(serializer: IFluidSerializer): ISummaryTreeWithStats {
431
445
  const builder = new SummaryTreeBuilder();
432
446
 
@@ -680,11 +694,13 @@ export abstract class SharedSegmentSequence<T extends ISegment>
680
694
 
681
695
  private initializeIntervalCollections() {
682
696
  // Listen and initialize new SharedIntervalCollections
683
- this.intervalMapKernel.eventEmitter.on("valueChanged", (ev: IValueChanged) => {
697
+ this.intervalMapKernel.eventEmitter.on("create", (ev: IValueChanged, local: boolean) => {
684
698
  const intervalCollection = this.intervalMapKernel.get<IntervalCollection<SequenceInterval>>(ev.key);
685
699
  if (!intervalCollection.attached) {
686
700
  intervalCollection.attachGraph(this.client, ev.key);
687
701
  }
702
+ assert(ev.previousValue === undefined, 0x2c1 /* "Creating an interval that already exists?" */);
703
+ this.emit("createIntervalCollection", ev.key, local, this);
688
704
  });
689
705
 
690
706
  // Initialize existing SharedIntervalCollections