Skip to content

Roadmap to V1 #3

@donseba

Description

@donseba
  • Create a Partial Service to which we can define the config which should make the globals obsolete #5

    • Include configuration options like default headers, template caching preferences, and default template functions.
    • Provide methods to register partials, retrieve them, and manage their lifecycles.
    • Ensure that the PartialService can be safely used across multiple goroutines.
  • Define a Connector Interface #7

    • Design an interface with methods that abstract the communication between the server and client-side frameworks.
    • Include methods for handling requests, parsing headers, and formatting responses according to the framework's expectations.
  • Implement Connectors for Specific Frameworks #8

    • HTMX
      • Implement a connector that handles HTMX-specific headers (like HX-Request, HX-Target, etc.).
      • Ensure that the server responses are formatted correctly for HTMX to process partial updates.
    • Alpine Ajax
      • Develop a connector that works with Alpine.js's AJAX capabilities.
      • Handle custom headers or payloads that Alpine.js might use for partial rendering.
    • Datastar
      • create a connector to integrate with its mechanisms.
      • Address any specific requirements Datastar has for partial rendering.
    • Standalone Framework (X-Request / X-Select / X-Action )
      • Implement a generic connector that uses custom headers like X-Request and X-Select.
  • Build a Use Case for X-Request and X-Select in a Single Call #9

    • In the backend we should add the possibility to assign a map to a specific partial WithMap(map[string]*Partial)
    • X-Select should identify which partial should be loaded into the request target
    • define the default Map value to render when not provided.
  • Add Logging Interface (slog) #6

    • Support different logging levels (debug, info, warning, error).
    • Include contextual information like request IDs, partial IDs, or timestamps.
    • Review error messages and logs to prevent outputting sensitive information.
  • Examples #12

    • Add basic example
    • Add example for SelectMap (X-Select)
    • Add Example for Action (X-Action)
    • Add Example for TemplateAction (X-Action)
  • Demo website

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions