MCPcopy Create free account
hub / github.com/apitable/apitable / doTransform

Method doTransform

packages/core/src/engine/engine.ts:438–491  ·  view source on GitHub ↗
(cs: IRemoteChangeset)

Source from the content-addressed store, hash-verified

436 }
437
438 private doTransform(cs: IRemoteChangeset) {
439 let remoteActions = cs.operations.reduce<IJOTAction[]>((pre, op) => {
440 pre.push(...op.actions);
441 return pre;
442 }, []);
443
444 this.event.getUndoManager().doTransform(remoteActions);
445
446 // localChangeset needs to be transformed and updated to the latest version
447 if (this.bufferStorage.localPendingChangeset) {
448 console.log(
449 'localPendingChangeset before transform:',
450 { localChangeset: this.bufferStorage.localPendingChangeset, remoteActions },
451 );
452 const newOperations = this.bufferStorage.localPendingChangeset.operations.map(op => {
453 const [leftOp, rightOp] = jot.transformX(op.actions, remoteActions);
454 remoteActions = rightOp;
455 return {
456 cmd: op.cmd,
457 actions: leftOp,
458 };
459 });
460 this.bufferStorage.localPendingChangeset = {
461 ...this.bufferStorage.localPendingChangeset,
462 operations: newOperations,
463 baseRevision: cs.revision,
464 };
465 console.log(
466 'localChangeset after transformed: ',
467 { localChangeset: this.bufferStorage.localPendingChangeset, remoteActions },
468 );
469 }
470
471 if (this.bufferStorage.opBuffer.length) {
472 console.log(
473 'opBuffer before transform:',
474 { localChangeset: this.bufferStorage.localPendingChangeset, remoteActions },
475 );
476 this.bufferStorage.opBuffer = this.bufferStorage.opBuffer.map(op => {
477 const [leftOp, rightOp] = jot.transformX(op.actions, remoteActions);
478 remoteActions = rightOp;
479 return {
480 cmd: op.cmd,
481 actions: leftOp,
482 };
483 });
484 console.log(
485 'opBuffer after transformed: ',
486 { localPendingChangeset: this.bufferStorage.localPendingChangeset, serverOperations: remoteActions },
487 );
488 }
489
490 return remoteActions;
491 }
492}
493

Callers 2

applyNewChangesMethod · 0.95
checkLocalDiffChangesMethod · 0.95

Calls 4

getUndoManagerMethod · 0.65
pushMethod · 0.45
logMethod · 0.45
mapMethod · 0.45

Tested by

no test coverage detected