...

Package watcherx

import "github.com/ory/x/watcherx"
Overview
Index
Subdirectories

Overview ▾

Variables

var (
    // ErrSchemeUnknown is just for checking with errors.Is()
    ErrSchemeUnknown     = &errSchemeUnknown{}
    ErrWatcherNotRunning = fmt.Errorf("watcher is not running")
)

func WatchAndServeWS

func WatchAndServeWS(ctx context.Context, u *url.URL, writer herodot.Writer) (http.HandlerFunc, error)

type ChangeEvent

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

func (*ChangeEvent) MarshalJSON

func (e *ChangeEvent) MarshalJSON() ([]byte, error)

func (*ChangeEvent) Reader

func (e *ChangeEvent) Reader() io.Reader

func (ChangeEvent) Source

func (e ChangeEvent) Source() string

func (*ChangeEvent) String

func (e *ChangeEvent) String() string

type ErrorEvent

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

func (*ErrorEvent) MarshalJSON

func (e *ErrorEvent) MarshalJSON() ([]byte, error)

func (*ErrorEvent) Reader

func (e *ErrorEvent) Reader() io.Reader

func (ErrorEvent) Source

func (e ErrorEvent) Source() string

func (*ErrorEvent) String

func (e *ErrorEvent) String() string

type Event

type Event interface {
    // MarshalJSON is required to work multiple times
    json.Marshaler

    Reader() io.Reader
    Source() string
    String() string
    // contains filtered or unexported methods
}

type EventChannel

type EventChannel chan Event

type RemoveEvent

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

func (*RemoveEvent) MarshalJSON

func (e *RemoveEvent) MarshalJSON() ([]byte, error)

func (*RemoveEvent) Reader

func (e *RemoveEvent) Reader() io.Reader

func (RemoveEvent) Source

func (e RemoveEvent) Source() string

func (*RemoveEvent) String

func (e *RemoveEvent) String() string

type Watcher

type Watcher interface {
    // DispatchNow fires the watcher and causes an event.
    //
    // WARNING: The returned channel must be read or no further events will
    // be propagated due to a deadlock.
    DispatchNow() (<-chan int, error)
}

func Watch

func Watch(ctx context.Context, u *url.URL, c EventChannel) (Watcher, error)

func WatchDirectory

func WatchDirectory(ctx context.Context, dir string, c EventChannel) (Watcher, error)

func WatchFile

func WatchFile(ctx context.Context, file string, c EventChannel) (Watcher, error)

func WatchWebsocket

func WatchWebsocket(ctx context.Context, u *url.URL, c EventChannel) (Watcher, error)

Subdirectories

Name Synopsis
..
integrationtest