web

package
v0.0.0-...-00c6cc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 28, 2026 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrPageNotFound = fiber.NewError(fiber.StatusNotFound, "page template not found")

Functions

func DistAsset

func DistAsset(name string) ([]byte, error)

func RegisterDistFS

func RegisterDistFS(fsys embed.FS)

func ServeManifest

func ServeManifest(c fiber.Ctx) error

func SetRouteDataProvider

func SetRouteDataProvider(provider RouteDataProvider)

func ShouldShowPage

func ShouldShowPage(route string) bool

ShouldShowPage returns true if the page should be shown in the navigation. It returns false for "/login", "/error", and dynamic routes containing ":".

Types

type Branding

type Branding struct {
	Name        string
	Description string
}

type LoginPageData

type LoginPageData struct {
	Error    string
	Branding Branding
}

type PageContentPayload

type PageContentPayload struct {
	Content    string `json:"content"`
	ServerData any    `json:"serverData,omitzero"`
	Title      string `json:"title"`
	Icon       string `json:"icon"`
	Route      string `json:"route"`
	Shell      string `json:"shell"`
}

type PageMetadata

type PageMetadata struct {
	Title       string            `json:"title"`
	Route       string            `json:"route"`
	Icon        string            `json:"icon"`
	Description string            `json:"description"`
	Meta        map[string]string `json:"meta"`
}

func GetPages

func GetPages() ([]*PageMetadata, error)

func GetVisiblePages

func GetVisiblePages() ([]*PageMetadata, error)

type PageTemplate

type PageTemplate struct {
	Title           string            `json:"title"`
	Route           string            `json:"route"`
	Icon            string            `json:"icon"`
	Description     string            `json:"description"`
	Meta            map[string]string `json:"meta"`
	FilePath        string            `json:"filePath"`
	TemplateID      string            `json:"templateId"`
	ShellTemplateID string            `json:"shellTemplateId"`
	RouteTokens     []RouteToken      `json:"routeTokens"`
}

func GetPageTemplate

func GetPageTemplate(route string) (*PageTemplate, bool, error)

func GetPageTemplates

func GetPageTemplates() ([]*PageTemplate, error)

type RenderState

type RenderState struct {
	Written bool // Written indicates that the render state has been written to a writer.
	// contains filtered or unexported fields
}

func (*RenderState) RenderPageString

func (s *RenderState) RenderPageString(r *Renderer, route string, data any, serverData any) (string, error)

RenderPageString renders a page to a string.

It should be only used in tests.

func (*RenderState) RenderPageToDiscard

func (s *RenderState) RenderPageToDiscard(r *Renderer, route string, data any, serverData any) error

RenderPageToDiscard renders a page to io.Discard.

It should be only used in benchmark tests.

type Renderer

type Renderer struct {
	// contains filtered or unexported fields
}

func NewRenderer

func NewRenderer(logger *slog.Logger) (*Renderer, error)

func (*Renderer) InvalidateServerDataCache

func (r *Renderer) InvalidateServerDataCache()

func (*Renderer) InvalidateServerDataCacheForRoute

func (r *Renderer) InvalidateServerDataCacheForRoute(route string)

func (*Renderer) NewPageRequestHandler

func (r *Renderer) NewPageRequestHandler() fiber.Handler

func (*Renderer) RenderPageContent

func (r *Renderer) RenderPageContent(path string, needRouteData bool) (PageContentPayload, error)

func (*Renderer) RenderPageContentWithServerData

func (r *Renderer) RenderPageContentWithServerData(path string, serverData any) (PageContentPayload, error)

func (*Renderer) RenderPageString

func (r *Renderer) RenderPageString(route string, data any, serverData any) (string, error)

func (*Renderer) ResolveRoute

func (r *Renderer) ResolveRoute(path string) (string, map[string]string, error)

func (*Renderer) StreamErrorPage

func (r *Renderer) StreamErrorPage(c fiber.Ctx, message string, errErr error)

func (*Renderer) StreamPage

func (r *Renderer) StreamPage(c fiber.Ctx, route string, data any, serverData any) error

type RouteDataProvider

type RouteDataProvider func(route string, params map[string]string) (any, error)

type RouteSegmentKind

type RouteSegmentKind string

type RouteToken

type RouteToken struct {
	Kind RouteSegmentKind `json:"kind"`
	Name string           `json:"name"`
}

type ServerDataCacheable

type ServerDataCacheable interface {
	ServerDataCacheFingerprint() string
}

ServerDataCacheable marks payloads that are safe to cache between GET renders.

The fingerprint should change whenever the logical payload changes.

type SiteConfig

type SiteConfig struct {
	Branding struct {
		Title       string `json:"title"`
		Description string `json:"description"`
	} `json:"branding"`
	Manifest json.RawMessage `json:"manifest"`
}

type StreamedServerDataEnvelope

type StreamedServerDataEnvelope struct {
	Route    string                  `json:"route"`
	Revision string                  `json:"revision"`
	State    StreamedServerDataState `json:"state"`
	Shape    StreamedServerDataShape `json:"shape"`
}

func NewNormalizedStreamedServerDataEnvelope

func NewNormalizedStreamedServerDataEnvelope(route string, revision string, normalized any) StreamedServerDataEnvelope

func NewStreamedServerDataEnvelope

func NewStreamedServerDataEnvelope(route string, revision string, value any) (StreamedServerDataEnvelope, error)

type StreamedServerDataPayload

type StreamedServerDataPayload struct {
	Route    string
	Revision string
	Value    any
}

type StreamedServerDataShape

type StreamedServerDataShape struct {
	Kind   StreamedServerDataShapeKind        `json:"kind"`
	Keys   []string                           `json:"keys,omitzero"`
	Length int                                `json:"length,omitzero"`
	Fields map[string]StreamedServerDataShape `json:"fields,omitzero"`
	Items  []StreamedServerDataShape          `json:"items,omitzero"`
}

type StreamedServerDataShapeKind

type StreamedServerDataShapeKind string
const (
	StreamedServerDataShapeKindNull   StreamedServerDataShapeKind = "null"
	StreamedServerDataShapeKindValue  StreamedServerDataShapeKind = "value"
	StreamedServerDataShapeKindObject StreamedServerDataShapeKind = "object"
	StreamedServerDataShapeKindArray  StreamedServerDataShapeKind = "array"
)

type StreamedServerDataState

type StreamedServerDataState string
const (
	StreamedServerDataStateLoading  StreamedServerDataState = "loading"
	StreamedServerDataStateFinished StreamedServerDataState = "finished"
	StreamedServerDataStateError    StreamedServerDataState = "error"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL