Skip to content

Commit 3c19543

Browse files
committed
Changeset: Deprecate oldLen() and newLen() functions
1 parent 6fd5be0 commit 3c19543

File tree

4 files changed

+18
-9
lines changed

4 files changed

+18
-9
lines changed

src/node/handler/PadMessageHandler.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -632,10 +632,10 @@ const handleUserChanges = async (socket, message) => {
632632

633633
const prevText = pad.text();
634634

635-
if (Changeset.oldLen(rebasedChangeset) !== prevText.length) {
635+
if (Changeset.unpack(rebasedChangeset).oldLen !== prevText.length) {
636636
throw new Error(
637637
`Can't apply changeset ${rebasedChangeset} with oldLen ` +
638-
`${Changeset.oldLen(rebasedChangeset)} to document of length ${prevText.length}`);
638+
`${Changeset.unpack(rebasedChangeset).oldLen} to document of length ${prevText.length}`);
639639
}
640640

641641
await pad.appendRevision(rebasedChangeset, thisSession.author);

src/static/js/Changeset.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,18 +276,28 @@ class Changeset {
276276
/**
277277
* Returns the required length of the text before changeset can be applied.
278278
*
279+
* @deprecated Use `Changeset.unpack(cs).oldLen` instead.
279280
* @param {string} cs - String representation of the Changeset
280281
* @returns {number} oldLen property
281282
*/
282-
exports.oldLen = (cs) => Changeset.unpack(cs).oldLen;
283+
exports.oldLen = (cs) => {
284+
padutils.warnWithStack(
285+
'Changeset.oldLen(cs) is deprecated; use Changeset.unpack(cs).oldLen instead');
286+
return Changeset.unpack(cs).oldLen;
287+
};
283288

284289
/**
285290
* Returns the length of the text after changeset is applied.
286291
*
292+
* @deprecated Use `Changeset.unpack(cs).newLen` instead.
287293
* @param {string} cs - String representation of the Changeset
288294
* @returns {number} newLen property
289295
*/
290-
exports.newLen = (cs) => Changeset.unpack(cs).newLen;
296+
exports.newLen = (cs) => {
297+
padutils.warnWithStack(
298+
'Changeset.newLen(cs) is deprecated; use Changeset.unpack(cs).newLen instead');
299+
return Changeset.unpack(cs).newLen;
300+
};
291301

292302
/**
293303
* 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
@@ -1447,11 +1447,10 @@ function Ace2Inner(editorInfo, cssManagers) {
14471447
};
14481448

14491449
const doRepApplyChangeset = (changes, insertsAfterSelection) => {
1450-
Changeset.unpack(changes).validate();
1450+
const cs = Changeset.unpack(changes).validate();
14511451

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

14571456
const editEvent = currentCallStack.editEvent;

src/static/js/changesettracker.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ const makeChangesetTracker = (scheduler, apool, aceCallbacksProvider) => {
167167
let cs = null;
168168
if (toSubmit) {
169169
submittedChangeset = toSubmit;
170-
userChangeset = Changeset.identity(Changeset.newLen(toSubmit));
170+
userChangeset = Changeset.identity(Changeset.unpack(toSubmit).newLen);
171171

172172
cs = toSubmit;
173173
}

0 commit comments

Comments
 (0)