diff --git a/src/index.js b/src/index.js index 8042fb28..d81bc5e8 100644 --- a/src/index.js +++ b/src/index.js @@ -120,7 +120,9 @@ export { filterIdMap, undoContentIds, intersectUpdateWithContentIds, - intersectUpdateWithContentIdsV2 + intersectUpdateWithContentIdsV2, + createDocFromUpdate, + createDocFromUpdateV2 } from './internals.js' export * from './utils/meta.js' diff --git a/src/utils/updates.js b/src/utils/updates.js index 1955841e..3a677ef6 100644 --- a/src/utils/updates.js +++ b/src/utils/updates.js @@ -33,7 +33,10 @@ import { UpdateEncoderV1, UpdateEncoderV2, writeIdSet, - createIdSet + createIdSet, + Doc, + applyUpdate, + applyUpdateV2 } from '../internals.js' import * as idset from './IdSet.js' @@ -779,3 +782,21 @@ export const intersectUpdateWithContentIdsV2 = (update, contentIds, YDecoder = U */ export const intersectUpdateWithContentIds = (update, contentIds) => intersectUpdateWithContentIdsV2(update, contentIds, UpdateDecoderV1, UpdateEncoderV1) + +/** + * @param {Uint8Array} update + */ +export const createDocFromUpdate = update => { + const ydoc = new Doc() + applyUpdate(ydoc, update) + return ydoc +} + +/** + * @param {Uint8Array} update + */ +export const createDocFromUpdateV2 = update => { + const ydoc = new Doc() + applyUpdateV2(ydoc, update) + return ydoc +}