• Robert Knight's avatar
    Replace the "plugin" functionality in the Guest · bcd65da1
    Robert Knight authored
    Replace the "plugin" functionality in the Guest that indirectly
    instantiates the `DocumentMeta`, `PDF` and `CrossFrame` classes with
    direct instantiation of those classes.
    
    The annotator part of the Hypothesis client is no longer a pluggable
    toolbox which can be arbitrarily extended by user-provided plugins.
    Removing the "plugins" logic and replacing it with direct construction
    of the necessary classes removes a lot of indirection that made the code
    harder to follow and also makes it easier for TypeScript to statically
    check the code. It will also enable the `config` object that is passed
    to `Guest` to be paired down to just the fields that are actually needed
    and properly typed.
    
    In future we will need some kind of plugin/integration facility to
    support different document viewers. For we will build a more specific
    document type integration facility when the time comes.
    
     - Remove `this.plugins` field from `Guest` class and `pluginClasses`
       config and replace with direct construction of `PDFIntegration`,
       `DocumentMeta` and `CrossFrame` classes
    
     - Update the `AnchoringImpl` typedef to correctly reflect that some anchoring
       implementations (HTML) have a synchronous `describe` method
    
     - Remove unnecessary `config` argument to `PDF` constructor
    
     - Replace the `PDF: {}` content in the guest config with `documentType:
       'pdf'` as a more obvious way for the annotator entry point to
       configure which document viewer integration is loaded. In future we
       can generalize this to support different types of viewer integration.
    bcd65da1
sidebar.js 1.4 KB