@fluidframework/map 2.0.0-internal.2.0.3 → 2.0.0-internal.2.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.
@@ -382,7 +382,7 @@ export declare class SharedDirectory extends SharedObject<ISharedDirectoryEvents
382
382
  /**
383
383
  * @internal
384
384
  */
385
- protected applyStashedOp(): void;
385
+ protected applyStashedOp(op: any): unknown;
386
386
  private serializeDirectory;
387
387
  }
388
388
  //# sourceMappingURL=directory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"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"}
package/dist/directory.js CHANGED
@@ -435,6 +435,12 @@ class SharedDirectory extends shared_object_base_1.SharedObject {
435
435
  subdir.resubmitClearMessage(op, localOpMetadata);
436
436
  }
437
437
  },
438
+ applyStashedOp: (op) => {
439
+ const subdir = this.getWorkingDirectory(op.path);
440
+ if (subdir) {
441
+ return subdir.applyStashedClearMessage(op);
442
+ }
443
+ },
438
444
  });
439
445
  this.messageHandlers.set("delete", {
440
446
  process: (op, local, localOpMetadata) => {
@@ -449,6 +455,12 @@ class SharedDirectory extends shared_object_base_1.SharedObject {
449
455
  subdir.resubmitKeyMessage(op, localOpMetadata);
450
456
  }
451
457
  },
458
+ applyStashedOp: (op) => {
459
+ const subdir = this.getWorkingDirectory(op.path);
460
+ if (subdir) {
461
+ return subdir.applyStashedDeleteMessage(op);
462
+ }
463
+ },
452
464
  });
453
465
  this.messageHandlers.set("set", {
454
466
  process: (op, local, localOpMetadata) => {
@@ -464,6 +476,13 @@ class SharedDirectory extends shared_object_base_1.SharedObject {
464
476
  subdir.resubmitKeyMessage(op, localOpMetadata);
465
477
  }
466
478
  },
479
+ applyStashedOp: (op) => {
480
+ const subdir = this.getWorkingDirectory(op.path);
481
+ if (subdir) {
482
+ const context = this.makeLocal(op.key, op.path, op.value);
483
+ return subdir.applyStashedSetMessage(op, context);
484
+ }
485
+ },
467
486
  });
468
487
  this.messageHandlers.set("createSubDirectory", {
469
488
  process: (op, local, localOpMetadata) => {
@@ -479,6 +498,13 @@ class SharedDirectory extends shared_object_base_1.SharedObject {
479
498
  parentSubdir.resubmitSubDirectoryMessage(op, localOpMetadata);
480
499
  }
481
500
  },
501
+ // eslint-disable-next-line max-len
502
+ applyStashedOp: (op) => {
503
+ const parentSubdir = this.getWorkingDirectory(op.path);
504
+ if (parentSubdir) {
505
+ return parentSubdir.applyStashedCreateSubDirMessage(op);
506
+ }
507
+ },
482
508
  });
483
509
  this.messageHandlers.set("deleteSubDirectory", {
484
510
  process: (op, local, localOpMetadata) => {
@@ -494,13 +520,24 @@ class SharedDirectory extends shared_object_base_1.SharedObject {
494
520
  parentSubdir.resubmitSubDirectoryMessage(op, localOpMetadata);
495
521
  }
496
522
  },
523
+ // eslint-disable-next-line max-len
524
+ applyStashedOp: (op) => {
525
+ const parentSubdir = this.getWorkingDirectory(op.path);
526
+ if (parentSubdir) {
527
+ return parentSubdir.applyStashedDeleteSubDirMessage(op);
528
+ }
529
+ },
497
530
  });
498
531
  }
499
532
  /**
500
533
  * @internal
501
534
  */
502
- applyStashedOp() {
503
- throw new Error("not implemented");
535
+ applyStashedOp(op) {
536
+ const handler = this.messageHandlers.get(op.type);
537
+ if (handler === undefined) {
538
+ throw new Error("no apply stashed op handler");
539
+ }
540
+ return handler.applyStashedOp(op);
504
541
  }
505
542
  serializeDirectory(root, serializer, telemetryContext) {
506
543
  const MinValueSizeSeparateSnapshotBlob = 8 * 1024;
@@ -900,7 +937,25 @@ class SubDirectory extends common_utils_1.TypedEventEmitter {
900
937
  (0, common_utils_1.assert)(pendingClearMessageId === localOpMetadata.pendingMessageId, 0x32a /* pendingMessageId does not match */);
901
938
  return;
902
939
  }
903
- this.clearExceptPendingKeys();
940
+ this.clearExceptPendingKeys(false);
941
+ }
942
+ /**
943
+ * Apply clear operation locally and generate metadata
944
+ * @param op - Op to apply
945
+ * @returns metadata generated for stahed op
946
+ */
947
+ applyStashedClearMessage(op) {
948
+ this.throwIfDisposed();
949
+ const previousValue = new Map(this._storage);
950
+ this.clearExceptPendingKeys(true);
951
+ const pendingMsgId = ++this.pendingMessageId;
952
+ this.pendingClearMessageIds.push(pendingMsgId);
953
+ const metadata = {
954
+ type: "clear",
955
+ pendingMessageId: pendingMsgId,
956
+ previousStorage: previousValue,
957
+ };
958
+ return metadata;
904
959
  }
905
960
  /**
906
961
  * Process a delete operation.
@@ -917,6 +972,18 @@ class SubDirectory extends common_utils_1.TypedEventEmitter {
917
972
  }
918
973
  this.deleteCore(op.key, local);
919
974
  }
975
+ /**
976
+ * Apply delete operation locally and generate metadata
977
+ * @param op - Op to apply
978
+ * @returns metadata generated for stahed op
979
+ */
980
+ applyStashedDeleteMessage(op) {
981
+ this.throwIfDisposed();
982
+ const previousValue = this.deleteCore(op.key, true);
983
+ const pendingMessageId = this.getKeyMessageId(op);
984
+ const localMetadata = { type: "edit", pendingMessageId, previousValue };
985
+ return localMetadata;
986
+ }
920
987
  /**
921
988
  * Process a set operation.
922
989
  * @param op - The op to process
@@ -935,6 +1002,20 @@ class SubDirectory extends common_utils_1.TypedEventEmitter {
935
1002
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
936
1003
  this.setCore(op.key, context, local);
937
1004
  }
1005
+ /**
1006
+ * Apply set operation locally and generate metadata
1007
+ * @param op - Op to apply
1008
+ * @returns metadata generated for stahed op
1009
+ */
1010
+ applyStashedSetMessage(op, context) {
1011
+ this.throwIfDisposed();
1012
+ // Set the value locally.
1013
+ const previousValue = this.setCore(op.key, context, true);
1014
+ // Create metadata
1015
+ const pendingMessageId = this.getKeyMessageId(op);
1016
+ const localMetadata = { type: "edit", pendingMessageId, previousValue };
1017
+ return localMetadata;
1018
+ }
938
1019
  /**
939
1020
  * Process a create subdirectory operation.
940
1021
  * @param op - The op to process
@@ -950,6 +1031,23 @@ class SubDirectory extends common_utils_1.TypedEventEmitter {
950
1031
  }
951
1032
  this.createSubDirectoryCore(op.subdirName, local);
952
1033
  }
1034
+ /**
1035
+ * Apply createSubDirectory operation locally and generate metadata
1036
+ * @param op - Op to apply
1037
+ * @returns metadata generated for stahed op
1038
+ */
1039
+ applyStashedCreateSubDirMessage(op) {
1040
+ this.throwIfDisposed();
1041
+ // Create the sub directory locally first.
1042
+ const isNew = this.createSubDirectoryCore(op.subdirName, true);
1043
+ const newMessageId = this.getSubDirMessageId(op);
1044
+ const localOpMetadata = {
1045
+ type: "createSubDir",
1046
+ pendingMessageId: newMessageId,
1047
+ previouslyExisted: !isNew,
1048
+ };
1049
+ return localOpMetadata;
1050
+ }
953
1051
  /**
954
1052
  * Process a delete subdirectory operation.
955
1053
  * @param op - The op to process
@@ -965,6 +1063,22 @@ class SubDirectory extends common_utils_1.TypedEventEmitter {
965
1063
  }
966
1064
  this.deleteSubDirectoryCore(op.subdirName, local);
967
1065
  }
1066
+ /**
1067
+ * Apply deleteSubDirectory operation locally and generate metadata
1068
+ * @param op - Op to apply
1069
+ * @returns metadata generated for stahed op
1070
+ */
1071
+ applyStashedDeleteSubDirMessage(op) {
1072
+ this.throwIfDisposed();
1073
+ const subDir = this.deleteSubDirectoryCore(op.subdirName, true);
1074
+ const newMessageId = this.getSubDirMessageId(op);
1075
+ const metadata = {
1076
+ type: "deleteSubDir",
1077
+ pendingMessageId: newMessageId,
1078
+ subDirectory: subDir,
1079
+ };
1080
+ return metadata;
1081
+ }
968
1082
  /**
969
1083
  * Submit a clear operation.
970
1084
  * @param op - The operation
@@ -1281,7 +1395,7 @@ class SubDirectory extends common_utils_1.TypedEventEmitter {
1281
1395
  /**
1282
1396
  * Clear all keys in memory in response to a remote clear, but retain keys we have modified but not yet been ack'd.
1283
1397
  */
1284
- clearExceptPendingKeys() {
1398
+ clearExceptPendingKeys(local) {
1285
1399
  // Assuming the pendingKeys is small and the map is large
1286
1400
  // we will get the value for the pendingKeys and clear the map
1287
1401
  const temp = new Map();
@@ -1289,7 +1403,7 @@ class SubDirectory extends common_utils_1.TypedEventEmitter {
1289
1403
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1290
1404
  temp.set(key, this._storage.get(key));
1291
1405
  });
1292
- this.clearCore(false);
1406
+ this.clearCore(local);
1293
1407
  temp.forEach((value, key, map) => {
1294
1408
  this.setCore(key, value, true);
1295
1409
  });