Skip to content

Commit 68d5830

Browse files
committed
Changeset: Deprecate oldLen() and newLen() functions
1 parent 6d7a54e commit 68d5830

File tree

4 files changed

+18
-10
lines changed

4 files changed

+18
-10
lines changed

src/node/handler/PadMessageHandler.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -654,11 +654,12 @@ const handleUserChanges = async (socket, message) => {
654654

655655
const prevText = pad.text();
656656

657-
if (Changeset.oldLen(changeset) !== prevText.length) {
657+
if (Changeset.unpack(changeset).oldLen !== prevText.length) {
658658
socket.json.send({disconnect: 'badChangeset'});
659659
stats.meter('failedChangesets').mark();
660-
throw new Error(`Can't apply USER_CHANGES ${changeset} with oldLen ` +
661-
`${Changeset.oldLen(changeset)} to document of length ${prevText.length}`);
660+
throw new Error(
661+
`Can't apply USER_CHANGES ${changeset} with oldLen ` +
662+
`${Changeset.unpack(changeset).oldLen} to document of length ${prevText.length}`);
662663
}
663664

664665
try {

src/static/js/Changeset.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,18 +246,26 @@ class Changeset {
246246
/**
247247
* Returns the required length of the text before changeset can be applied.
248248
*
249+
* @deprecated Use `Changeset.unpack(cs).oldLen` instead.
249250
* @param {string} cs - String representation of the Changeset
250251
* @returns {number} oldLen property
251252
*/
252-
exports.oldLen = (cs) => Changeset.unpack(cs).oldLen;
253+
exports.oldLen = (cs) => {
254+
warnDeprecated('Changeset.oldLen(cs) is deprecated; use Changeset.unpack(cs).oldLen instead');
255+
return Changeset.unpack(cs).oldLen;
256+
};
253257

254258
/**
255259
* Returns the length of the text after changeset is applied.
256260
*
261+
* @deprecated Use `Changeset.unpack(cs).newLen` instead.
257262
* @param {string} cs - String representation of the Changeset
258263
* @returns {number} newLen property
259264
*/
260-
exports.newLen = (cs) => Changeset.unpack(cs).newLen;
265+
exports.newLen = (cs) => {
266+
warnDeprecated('Changeset.newLen(cs) is deprecated; use Changeset.unpack(cs).newLen instead');
267+
return Changeset.unpack(cs).newLen;
268+
};
261269

262270
/**
263271
* Iterator over a changeset's operations.

src/static/js/ace2_inner.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1474,11 +1474,10 @@ function Ace2Inner(editorInfo, cssManagers) {
14741474
};
14751475

14761476
const doRepApplyChangeset = (changes, insertsAfterSelection) => {
1477-
Changeset.unpack(changes).validate();
1477+
const cs = Changeset.unpack(changes).validate();
14781478

1479-
if (Changeset.oldLen(changes) !== rep.alltext.length) {
1480-
const errMsg = `${Changeset.oldLen(changes)}/${rep.alltext.length}`;
1481-
throw new Error(`doRepApplyChangeset length mismatch: ${errMsg}`);
1479+
if (cs.oldLen !== rep.alltext.length) {
1480+
throw new Error(`doRepApplyChangeset length mismatch: ${cs.oldLen}/${rep.alltext.length}`);
14821481
}
14831482

14841483
const editEvent = currentCallStack.editEvent;

src/static/js/changesettracker.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ const makeChangesetTracker = (scheduler, apool, aceCallbacksProvider) => {
192192
let cs = null;
193193
if (toSubmit) {
194194
submittedChangeset = toSubmit;
195-
userChangeset = Changeset.identity(Changeset.newLen(toSubmit));
195+
userChangeset = Changeset.identity(Changeset.unpack(toSubmit).newLen);
196196

197197
cs = toSubmit;
198198
}

0 commit comments

Comments
 (0)