Skip to content

Commit eba354f

Browse files
committed
Changeset: Deprecate oldLen() and newLen() functions
1 parent 5f0ec2c commit eba354f

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
@@ -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
@@ -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
@@ -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)