@fluidframework/map 0.52.1 → 0.53.0-46105

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/lib/directory.js CHANGED
@@ -421,7 +421,7 @@ export class SharedDirectory extends SharedObject {
421
421
  const op = message.contents;
422
422
  const handler = this.messageHandlers.get(op.type);
423
423
  assert(handler !== undefined, 0x00e /* `Missing message handler for message type: ${message.type}` */);
424
- handler.process(op, local, message, localOpMetadata);
424
+ handler.process(op, local, localOpMetadata);
425
425
  }
426
426
  }
427
427
  /**
@@ -450,10 +450,10 @@ export class SharedDirectory extends SharedObject {
450
450
  */
451
451
  setMessageHandlers() {
452
452
  this.messageHandlers.set("clear", {
453
- process: (op, local, message, localOpMetadata) => {
453
+ process: (op, local, localOpMetadata) => {
454
454
  const subdir = this.getWorkingDirectory(op.path);
455
455
  if (subdir) {
456
- subdir.processClearMessage(op, local, message, localOpMetadata);
456
+ subdir.processClearMessage(op, local, localOpMetadata);
457
457
  }
458
458
  },
459
459
  submit: (op, localOpMetadata) => {
@@ -465,10 +465,10 @@ export class SharedDirectory extends SharedObject {
465
465
  },
466
466
  });
467
467
  this.messageHandlers.set("delete", {
468
- process: (op, local, message, localOpMetadata) => {
468
+ process: (op, local, localOpMetadata) => {
469
469
  const subdir = this.getWorkingDirectory(op.path);
470
470
  if (subdir) {
471
- subdir.processDeleteMessage(op, local, message, localOpMetadata);
471
+ subdir.processDeleteMessage(op, local, localOpMetadata);
472
472
  }
473
473
  },
474
474
  submit: (op, localOpMetadata) => {
@@ -480,11 +480,11 @@ export class SharedDirectory extends SharedObject {
480
480
  },
481
481
  });
482
482
  this.messageHandlers.set("set", {
483
- process: (op, local, message, localOpMetadata) => {
483
+ process: (op, local, localOpMetadata) => {
484
484
  const subdir = this.getWorkingDirectory(op.path);
485
485
  if (subdir) {
486
486
  const context = local ? undefined : this.makeLocal(op.key, op.path, op.value);
487
- subdir.processSetMessage(op, context, local, message, localOpMetadata);
487
+ subdir.processSetMessage(op, context, local, localOpMetadata);
488
488
  }
489
489
  },
490
490
  submit: (op, localOpMetadata) => {
@@ -496,10 +496,10 @@ export class SharedDirectory extends SharedObject {
496
496
  },
497
497
  });
498
498
  this.messageHandlers.set("createSubDirectory", {
499
- process: (op, local, message, localOpMetadata) => {
499
+ process: (op, local, localOpMetadata) => {
500
500
  const parentSubdir = this.getWorkingDirectory(op.path);
501
501
  if (parentSubdir) {
502
- parentSubdir.processCreateSubDirectoryMessage(op, local, message, localOpMetadata);
502
+ parentSubdir.processCreateSubDirectoryMessage(op, local, localOpMetadata);
503
503
  }
504
504
  },
505
505
  submit: (op, localOpMetadata) => {
@@ -511,10 +511,10 @@ export class SharedDirectory extends SharedObject {
511
511
  },
512
512
  });
513
513
  this.messageHandlers.set("deleteSubDirectory", {
514
- process: (op, local, message, localOpMetadata) => {
514
+ process: (op, local, localOpMetadata) => {
515
515
  const parentSubdir = this.getWorkingDirectory(op.path);
516
516
  if (parentSubdir) {
517
- parentSubdir.processDeleteSubDirectoryMessage(op, local, message, localOpMetadata);
517
+ parentSubdir.processDeleteSubDirectoryMessage(op, local, localOpMetadata);
518
518
  }
519
519
  },
520
520
  submit: (op, localOpMetadata) => {
@@ -629,7 +629,7 @@ class SubDirectory extends TypedEventEmitter {
629
629
  const localValue = this.directory.localValueMaker.fromInMemory(value);
630
630
  const serializableValue = makeSerializable(localValue, this.serializer, this.directory.handle);
631
631
  // Set the value locally.
632
- this.setCore(key, localValue, true, null);
632
+ this.setCore(key, localValue, true);
633
633
  // If we are not attached, don't submit the op.
634
634
  if (!this.directory.isAttached()) {
635
635
  return this;
@@ -655,7 +655,7 @@ class SubDirectory extends TypedEventEmitter {
655
655
  throw new Error(`SubDirectory name may not contain ${posix.sep}`);
656
656
  }
657
657
  // Create the sub directory locally first.
658
- this.createSubDirectoryCore(subdirName, true, null);
658
+ this.createSubDirectoryCore(subdirName, true);
659
659
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
660
660
  const subDir = this._subdirectories.get(subdirName);
661
661
  // If we are not attached, don't submit the op.
@@ -687,7 +687,7 @@ class SubDirectory extends TypedEventEmitter {
687
687
  */
688
688
  deleteSubDirectory(subdirName) {
689
689
  // Delete the sub directory locally first.
690
- const successfullyRemoved = this.deleteSubDirectoryCore(subdirName, true, null);
690
+ const successfullyRemoved = this.deleteSubDirectoryCore(subdirName, true);
691
691
  // If we are not attached, don't submit the op.
692
692
  if (!this.directory.isAttached()) {
693
693
  return successfullyRemoved;
@@ -719,7 +719,7 @@ class SubDirectory extends TypedEventEmitter {
719
719
  */
720
720
  delete(key) {
721
721
  // Delete the key locally first.
722
- const successfullyRemoved = this.deleteCore(key, true, null);
722
+ const successfullyRemoved = this.deleteCore(key, true);
723
723
  // If we are not attached, don't submit the op.
724
724
  if (!this.directory.isAttached()) {
725
725
  return successfullyRemoved;
@@ -737,7 +737,7 @@ class SubDirectory extends TypedEventEmitter {
737
737
  */
738
738
  clear() {
739
739
  // Clear the data locally first.
740
- this.clearCore(true, null);
740
+ this.clearCore(true);
741
741
  // If we are not attached, don't submit the op.
742
742
  if (!this.directory.isAttached()) {
743
743
  return;
@@ -832,7 +832,7 @@ class SubDirectory extends TypedEventEmitter {
832
832
  * For messages from a remote client, this will be undefined.
833
833
  * @internal
834
834
  */
835
- processClearMessage(op, local, message, localOpMetadata) {
835
+ processClearMessage(op, local, localOpMetadata) {
836
836
  if (local) {
837
837
  assert(localOpMetadata !== undefined, 0x00f /* `pendingMessageId is missing from the local client's ${op.type} operation` */);
838
838
  const pendingMessageId = localOpMetadata;
@@ -842,7 +842,7 @@ class SubDirectory extends TypedEventEmitter {
842
842
  return;
843
843
  }
844
844
  this.clearExceptPendingKeys();
845
- this.directory.emit("clear", local, op, this.directory);
845
+ this.directory.emit("clear", local, this.directory);
846
846
  }
847
847
  /**
848
848
  * Process a delete operation.
@@ -853,11 +853,11 @@ class SubDirectory extends TypedEventEmitter {
853
853
  * For messages from a remote client, this will be undefined.
854
854
  * @internal
855
855
  */
856
- processDeleteMessage(op, local, message, localOpMetadata) {
857
- if (!this.needProcessStorageOperation(op, local, message, localOpMetadata)) {
856
+ processDeleteMessage(op, local, localOpMetadata) {
857
+ if (!this.needProcessStorageOperation(op, local, localOpMetadata)) {
858
858
  return;
859
859
  }
860
- this.deleteCore(op.key, local, message);
860
+ this.deleteCore(op.key, local);
861
861
  }
862
862
  /**
863
863
  * Process a set operation.
@@ -868,14 +868,14 @@ class SubDirectory extends TypedEventEmitter {
868
868
  * For messages from a remote client, this will be undefined.
869
869
  * @internal
870
870
  */
871
- processSetMessage(op, context, local, message, localOpMetadata) {
872
- if (!this.needProcessStorageOperation(op, local, message, localOpMetadata)) {
871
+ processSetMessage(op, context, local, localOpMetadata) {
872
+ if (!this.needProcessStorageOperation(op, local, localOpMetadata)) {
873
873
  return;
874
874
  }
875
875
  // needProcessStorageOperation should have returned false if local is true
876
876
  // so we can assume context is not undefined
877
877
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
878
- this.setCore(op.key, context, local, message);
878
+ this.setCore(op.key, context, local);
879
879
  }
880
880
  /**
881
881
  * Process a create subdirectory operation.
@@ -886,11 +886,11 @@ class SubDirectory extends TypedEventEmitter {
886
886
  * For messages from a remote client, this will be undefined.
887
887
  * @internal
888
888
  */
889
- processCreateSubDirectoryMessage(op, local, message, localOpMetadata) {
890
- if (!this.needProcessSubDirectoryOperations(op, local, message, localOpMetadata)) {
889
+ processCreateSubDirectoryMessage(op, local, localOpMetadata) {
890
+ if (!this.needProcessSubDirectoryOperations(op, local, localOpMetadata)) {
891
891
  return;
892
892
  }
893
- this.createSubDirectoryCore(op.subdirName, local, message);
893
+ this.createSubDirectoryCore(op.subdirName, local);
894
894
  }
895
895
  /**
896
896
  * Process a delete subdirectory operation.
@@ -901,11 +901,11 @@ class SubDirectory extends TypedEventEmitter {
901
901
  * For messages from a remote client, this will be undefined.
902
902
  * @internal
903
903
  */
904
- processDeleteSubDirectoryMessage(op, local, message, localOpMetadata) {
905
- if (!this.needProcessSubDirectoryOperations(op, local, message, localOpMetadata)) {
904
+ processDeleteSubDirectoryMessage(op, local, localOpMetadata) {
905
+ if (!this.needProcessSubDirectoryOperations(op, local, localOpMetadata)) {
906
906
  return;
907
907
  }
908
- this.deleteSubDirectoryCore(op.subdirName, local, message);
908
+ this.deleteSubDirectoryCore(op.subdirName, local);
909
909
  }
910
910
  /**
911
911
  * Submit a clear operation.
@@ -996,7 +996,7 @@ class SubDirectory extends TypedEventEmitter {
996
996
  * For messages from a remote client, this will be undefined.
997
997
  * @returns True if the operation should be processed, false otherwise
998
998
  */
999
- needProcessStorageOperation(op, local, message, localOpMetadata) {
999
+ needProcessStorageOperation(op, local, localOpMetadata) {
1000
1000
  if (this.pendingClearMessageId !== -1) {
1001
1001
  if (local) {
1002
1002
  assert(localOpMetadata !== undefined && localOpMetadata < this.pendingClearMessageId, 0x010 /* "Received out of order storage op when there is an unackd clear message" */);
@@ -1030,7 +1030,7 @@ class SubDirectory extends TypedEventEmitter {
1030
1030
  * For messages from a remote client, this will be undefined.
1031
1031
  * @returns True if the operation should be processed, false otherwise
1032
1032
  */
1033
- needProcessSubDirectoryOperations(op, local, message, localOpMetadata) {
1033
+ needProcessSubDirectoryOperations(op, local, localOpMetadata) {
1034
1034
  if (this.pendingSubDirectories.has(op.subdirName)) {
1035
1035
  if (local) {
1036
1036
  assert(localOpMetadata !== undefined, 0x012 /* `pendingMessageId is missing from the local client's ${op.type} operation` */);
@@ -1065,9 +1065,9 @@ class SubDirectory extends TypedEventEmitter {
1065
1065
  * @param local - Whether the message originated from the local client
1066
1066
  * @param op - The message if from a remote clear, or null if from a local clear
1067
1067
  */
1068
- clearCore(local, op) {
1068
+ clearCore(local) {
1069
1069
  this._storage.clear();
1070
- this.directory.emit("clear", local, op, this.directory);
1070
+ this.directory.emit("clear", local, this.directory);
1071
1071
  }
1072
1072
  /**
1073
1073
  * Delete implementation used for both locally sourced deletes as well as incoming remote deletes.
@@ -1076,12 +1076,12 @@ class SubDirectory extends TypedEventEmitter {
1076
1076
  * @param op - The message if from a remote delete, or null if from a local delete
1077
1077
  * @returns True if the key existed and was deleted, false if it did not exist
1078
1078
  */
1079
- deleteCore(key, local, op) {
1079
+ deleteCore(key, local) {
1080
1080
  const previousValue = this.get(key);
1081
1081
  const successfullyRemoved = this._storage.delete(key);
1082
1082
  if (successfullyRemoved) {
1083
1083
  const event = { key, path: this.absolutePath, previousValue };
1084
- this.directory.emit("valueChanged", event, local, op, this.directory);
1084
+ this.directory.emit("valueChanged", event, local, this.directory);
1085
1085
  const containedEvent = { key, previousValue };
1086
1086
  this.emit("containedValueChanged", containedEvent, local, this);
1087
1087
  }
@@ -1094,11 +1094,11 @@ class SubDirectory extends TypedEventEmitter {
1094
1094
  * @param local - Whether the message originated from the local client
1095
1095
  * @param op - The message if from a remote set, or null if from a local set
1096
1096
  */
1097
- setCore(key, value, local, op) {
1097
+ setCore(key, value, local) {
1098
1098
  const previousValue = this.get(key);
1099
1099
  this._storage.set(key, value);
1100
1100
  const event = { key, path: this.absolutePath, previousValue };
1101
- this.directory.emit("valueChanged", event, local, op, this.directory);
1101
+ this.directory.emit("valueChanged", event, local, this.directory);
1102
1102
  const containedEvent = { key, previousValue };
1103
1103
  this.emit("containedValueChanged", containedEvent, local, this);
1104
1104
  }
@@ -1106,9 +1106,8 @@ class SubDirectory extends TypedEventEmitter {
1106
1106
  * Create subdirectory implementation used for both locally sourced creation as well as incoming remote creation.
1107
1107
  * @param subdirName - The name of the subdirectory being created
1108
1108
  * @param local - Whether the message originated from the local client
1109
- * @param op - The message if from a remote create, or null if from a local create
1110
1109
  */
1111
- createSubDirectoryCore(subdirName, local, op) {
1110
+ createSubDirectoryCore(subdirName, local) {
1112
1111
  if (!this._subdirectories.has(subdirName)) {
1113
1112
  this._subdirectories.set(subdirName, new SubDirectory(this.directory, this.runtime, this.serializer, posix.join(this.absolutePath, subdirName)));
1114
1113
  }
@@ -1119,7 +1118,7 @@ class SubDirectory extends TypedEventEmitter {
1119
1118
  * @param local - Whether the message originated from the local client
1120
1119
  * @param op - The message if from a remote delete, or null if from a local delete
1121
1120
  */
1122
- deleteSubDirectoryCore(subdirName, local, op) {
1121
+ deleteSubDirectoryCore(subdirName, local) {
1123
1122
  // This should make the subdirectory structure unreachable so it can be GC'd and won't appear in snapshots
1124
1123
  // Might want to consider cleaning out the structure more exhaustively though?
1125
1124
  return this._subdirectories.delete(subdirName);