Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds support for FASTElement hydration #6977

Merged

Commits on Jul 5, 2024

  1. Change files

    prabhujayapal authored and janechu committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3d60271 View commit details
    Browse the repository at this point in the history
  2. Adds support for FASTElement hydration

    Original PR was made in a fork by `nicholasrice`. Below is the commit description from the original PR.
    
    This PR enables hydration of FAST custom elements from HTML emitted by SSR processes.
    
    This PR has three core areas:
    
    I've added a SSR example application to /examples to aid in debugging. This code was ported from external FAST.
    I've updated fast-ssr to accept a emitHydratableMarkup attribute. Configuring this option causes markers to be emitted during template rendering. These markers manifest either as element attributes (for attribute bindings / directives) and HTML comments (for content bindings / directives). These markers are used by fast-element to identify which elements belong to which views and bindings.
    fast-element has been updated to support hydrating views, details below.
    fast-element changes:
    
    Updated HydratableElementController to invoke hydrate on it's template during connection, also refactored ElementController base class to allow better direct extension by making private properties protected.
    Added a HydrationView class. An instance of this class represents a region of DOM created by a template during the SSR process. When this class binds for the first time, it walks the DOM tree between it's first and last nodes looking for binding markers emitted during fast-ssr rendering. When it finds binding markers, it associates the template binding to that DOM location. After all the nodes have been walked and the bindings targeted, behaviors for those bindings are created and bound, hooking up observable behavior.
    Updated bindings and directives to handle hydration scenarios. Unfortunately, I was not able to identify a good way to separate the hydration beahvior from the CSR binding behavior without implementing a large amount of code duplication. Instead, I added a lightweight isHydratable() test to determine whether bindings should go through hydration flows. Bindings and directives were then updated to not affect DOM during hydration flows.
    prabhujayapal authored and janechu committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    16c13d4 View commit details
    Browse the repository at this point in the history
  3. prettier fixes

    prabhujayapal authored and janechu committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    928ad63 View commit details
    Browse the repository at this point in the history
  4. fast-ssr prettier fixes

    prabhujayapal authored and janechu committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    4361c73 View commit details
    Browse the repository at this point in the history
  5. Change files

    prabhujayapal authored and janechu committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    f3caa5c View commit details
    Browse the repository at this point in the history
  6. fix fast-ssr unit tests

    prabhujayapal authored and janechu committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    7ca6be4 View commit details
    Browse the repository at this point in the history
  7. fix fast-style unit tests

    prabhujayapal authored and janechu committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1441815 View commit details
    Browse the repository at this point in the history
  8. resolve conflicts

    prabhujayapal authored and janechu committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0deadfe View commit details
    Browse the repository at this point in the history
  9. remove SSR template render events

    prabhujayapal authored and janechu committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    aa57005 View commit details
    Browse the repository at this point in the history
  10. Update api reports

    janechu committed Jul 5, 2024
    Configuration menu
    Copy the full SHA
    1c4ee83 View commit details
    Browse the repository at this point in the history