• Randall Leeds's avatar
    Improve packaging, bundling and module boilerplate · 992efe84
    Randall Leeds authored
    Prevent negative interactions with module systems present in injected
    pages and refactor browserify interactions with angular to increase
    CommonJS accessibility / legibility and isolate angular module system
    boilerplate.
    
    - Avoid issues due to mis-detected module environments
    
      - In the injection script, load only Annotator and jQuery in the
        global scope and then both removed with `noConflict()`. Both are
        loaded with browserify-shim, which prevents jQuery from registering
        itself against require.js, if present (fix #2026).
    
      - Be explicit about registration of common cross-frame components
        (fix #2090).
    
        - Lift angular glue into app.coffee. Individual components are
          exported as CommonJS modules.
    
        - Lift Annotator glue into bootstrap.js (renamed hypothesis.js).
    
    - Break up all modules that contained multiple services/directives/etc,
      such as the formHelpers and uiHelpers modules, as well as catch-all
      files like services.coffee and directives.coffee. For a summary of
      these movements see the bottom of this commit message.
    
    - Rename all services, dropping the -service suffix, to match their
      injected names. This is consistent with how directives are being
      treated, and controllers as well (controllers are registered and
      injected done with the "Controller" suffix).
    
    - Move Annotator subclasses into the annotator subdirectory. This
      change avoids having `Annotator.Host` clash with the `host`
      service and makes it easy to glob dependencies in assets.yaml to
      minimally rebuild either the app or the inject.
    
    ---
    
    Summary of structural reorganisation. Modules that have been trivially
    renamed (from "foo-service" to "foo") are not included in this list:
    
        controllers:AppController                   app-controller
        controllers:AnnotationUIController          annotation-ui-controller
        controllers:AnnotationViewerController      annotation-viewer-controller
        controllers:ViewerController                widget-controller
    
        directives:match                            directive/match
        directives:repeatAnim                       directive/repeat-anim
        directives:whenscrolled                     directive/whenscrolled
    
        directives/thread:pulse                     pulse
    
        filters:Converter                           filter/converter
        filters:momentFilter                        filter/moment
        filters:personaFilter                       filter/persona
        filters:urlEncodeFilter                     filter/urlencode
    
        guest                                       annotator/guest
        host                                        annotator/host
    
        helpers/form-helpers:createFormHelpers      form-respond
        helpers/form-helpers:formInput              directive/form-input
        helpers/form-helpers:formValidate           directive/form-validate
        helpers/string-helpers:createStringHelpers  unicode
        helpers/tag-helpers                         tags
        helpers/time-helpers                        time
        helpers/ui-helpers:tabbable                 directive/tabbable
        helpers/ui-helpers:tabReveal                directive/tab-reveal
    
        searchfilters:QueryParser                   query-parser
        searchfilters:SearchFilter                  search-filter
        searchfilters:StreamFilter                  stream-filter
    
        services:DraftProvider                      drafts
        services:ViewFilter                         view-filter
        services:renderFactory                      render
    
        session/session-service                     session
    
        streamsearch                                stream-controller
    992efe84
local-storage.coffee 1.06 KB