• 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
..
annotator Loading commit data...
boot Loading commit data...
images/icons Loading commit data...
shared Loading commit data...
sidebar Loading commit data...
styles Loading commit data...
test-util Loading commit data...
types Loading commit data...
.eslintrc Loading commit data...
karma.config.js Loading commit data...
tsconfig.json Loading commit data...