From 29da9815aebfd49f75aee04450fb38b92cd38a7f Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Tue, 19 Oct 2021 03:49:39 -0400 Subject: [PATCH] Changeset: Add new `Builder.prototype.build()` method --- src/static/js/Changeset.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/static/js/Changeset.js b/src/static/js/Changeset.js index a783d4243..5c0c9e549 100644 --- a/src/static/js/Changeset.js +++ b/src/static/js/Changeset.js @@ -1988,14 +1988,26 @@ class Builder { return this; } - toString() { + /** + * @returns {Changeset} + */ + build() { /** @type {number} */ let lengthChange; const serializedOps = exports.serializeOps((function* () { lengthChange = yield* exports.canonicalizeOps(this._ops, true); }).call(this)); - const newLen = this._oldLen + lengthChange; - return exports.pack(this._oldLen, newLen, serializedOps, this._charBank.toString()); + return { + oldLen: this._oldLen, + newLen: this._oldLen + lengthChange, + ops: serializedOps, + charBank: this._charBank.toString(), + }; + } + + toString() { + const {oldLen, newLen, ops, charBank} = this.build(); + return exports.pack(oldLen, newLen, ops, charBank); } } exports.Builder = Builder;