Skip to content

Commit cbf0873

Browse files
committed
Changeset: Deprecate oldLen() and newLen() functions
1 parent 24b7831 commit cbf0873

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
@@ -652,11 +652,12 @@ const handleUserChanges = async (socket, message) => {
652652

653653
const prevText = pad.text();
654654

655-
if (Changeset.oldLen(changeset) !== prevText.length) {
655+
if (Changeset.unpack(changeset).oldLen !== prevText.length) {
656656
socket.json.send({disconnect: 'badChangeset'});
657657
stats.meter('failedChangesets').mark();
658-
throw new Error(`Can't apply USER_CHANGES ${changeset} with oldLen ` +
659-
`${Changeset.oldLen(changeset)} to document of length ${prevText.length}`);
658+
throw new Error(
659+
`Can't apply USER_CHANGES ${changeset} with oldLen ` +
660+
`${Changeset.unpack(changeset).oldLen} to document of length ${prevText.length}`);
660661
}
661662

662663
try {

src/static/js/Changeset.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,18 +278,26 @@ class Changeset {
278278
/**
279279
* Returns the required length of the text before changeset can be applied.
280280
*
281+
* @deprecated Use `Changeset.unpack(cs).oldLen` instead.
281282
* @param {string} cs - String representation of the Changeset
282283
* @returns {number} oldLen property
283284
*/
284-
exports.oldLen = (cs) => Changeset.unpack(cs).oldLen;
285+
exports.oldLen = (cs) => {
286+
warnDeprecated('Changeset.oldLen(cs) is deprecated; use Changeset.unpack(cs).oldLen instead');
287+
return Changeset.unpack(cs).oldLen;
288+
};
285289

286290
/**
287291
* Returns the length of the text after changeset is applied.
288292
*
293+
* @deprecated Use `Changeset.unpack(cs).newLen` instead.
289294
* @param {string} cs - String representation of the Changeset
290295
* @returns {number} newLen property
291296
*/
292-
exports.newLen = (cs) => Changeset.unpack(cs).newLen;
297+
exports.newLen = (cs) => {
298+
warnDeprecated('Changeset.newLen(cs) is deprecated; use Changeset.unpack(cs).newLen instead');
299+
return Changeset.unpack(cs).newLen;
300+
};
293301

294302
/**
295303
* Parses a string of serialized changeset operations.

src/static/js/ace2_inner.js

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

14481448
const doRepApplyChangeset = (changes, insertsAfterSelection) => {
1449-
Changeset.unpack(changes).validate();
1449+
const cs = Changeset.unpack(changes).validate();
14501450

1451-
if (Changeset.oldLen(changes) !== rep.alltext.length) {
1452-
const errMsg = `${Changeset.oldLen(changes)}/${rep.alltext.length}`;
1453-
throw new Error(`doRepApplyChangeset length mismatch: ${errMsg}`);
1451+
if (cs.oldLen !== rep.alltext.length) {
1452+
throw new Error(`doRepApplyChangeset length mismatch: ${cs.oldLen}/${rep.alltext.length}`);
14541453
}
14551454

14561455
const editEvent = currentCallStack.editEvent;

src/static/js/changesettracker.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ const makeChangesetTracker = (scheduler, apool, aceCallbacksProvider) => {
183183
let cs = null;
184184
if (toSubmit) {
185185
submittedChangeset = toSubmit;
186-
userChangeset = Changeset.identity(Changeset.newLen(toSubmit));
186+
userChangeset = Changeset.identity(Changeset.unpack(toSubmit).newLen);
187187

188188
cs = toSubmit;
189189
}

0 commit comments

Comments
 (0)