@atlaskit/editor-plugin-show-diff
Version:
ShowDiff plugin for @atlaskit/editor-core
18 lines • 703 B
JavaScript
/**
* Resolves a document position, or returns `null` if it cannot be resolved.
*
* `Node.resolve` throws a `RangeError` for a position outside the document. Diff decorations are
* built from change ranges computed against a document that may since have moved on, so a position
* arriving out of range is a normal outcome rather than a defect — but an exception escaping here
* takes down the whole decoration set, leaving the diff unrendered.
*
* Callers are expected to treat `null` as "cannot tell" and fall back to behaviour that does not
* need the resolved position.
*/
export const safeResolve = (doc, pos) => {
try {
return doc.resolve(pos);
} catch {
return null;
}
};