• Robert Knight's avatar
    Refactor `Guest#anchor` · d9085810
    Robert Knight authored
    Rewrite the `Guest#anchor` method to simplify the control flow and
    generally make it easier to understand and change. There are no
    functional changes for annotations with zero or one entry in the
    `target` field (all existing Hypothesis annotations).
    
    There is a functional change to handling of annotations with multiple
    targets. Previously `anchor` would try to be smart about only
    re-anchoring targets which were not already anchored. In the new
    implementation all targets for an annotation are re-anchored. This will have
    no effect in practice because the Hypothesis client only supports
    creating annotations with a single target and the h backend can only
    store a single target per annotation. However the Hypothesis API does
    allow for multiple targets per annotation, in line with the W3C Web
    Annotations specs in which a single annotation can refer to multiple
    parts of a document.
    
     - Convert `anchor` method to async and replace Promise chains with async/await
    
     - Replace the logic that removes existing anchors and highlights for an
       annotation with a call to the `detach` method. This required adding
       an internal parameter to `detach` to control whether `anchorsChanged`
       is emitted, so that `anchor` only emits `anchorsChanged` once.
    
     - Add an explicit error to `Promise.reject` calls in tests so that the
       tests are easier to debug if they fail
    d9085810
Name
Last commit
Last update
..
anchoring Loading commit data...
components Loading commit data...
config Loading commit data...
integrations Loading commit data...
test Loading commit data...
util Loading commit data...
.eslintrc.js Loading commit data...
adder.js Loading commit data...
annotation-counts.js Loading commit data...
annotation-sync.js Loading commit data...
bucket-bar.js Loading commit data...
cross-frame.js Loading commit data...
features.js Loading commit data...
frame-observer.js Loading commit data...
guest.js Loading commit data...
highlighter.js Loading commit data...
icons.js Loading commit data...
index.js Loading commit data...
notebook.js Loading commit data...
range-util.js Loading commit data...
selection-observer.js Loading commit data...
sidebar-trigger.js Loading commit data...
sidebar.js Loading commit data...
toolbar.js Loading commit data...