Documentation ¶
Overview ¶
Package est provides the Encore Syntax Tree (EST).
It is an Encore-specific syntax tree that represents the higher-level representation of the application that Encore understands.
Index ¶
- type AccessType
- type Application
- type AuthHandler
- type CronJob
- type File
- type Middleware
- type Node
- type NodeType
- type Package
- type Param
- type PubSubGuarantee
- type PubSubPublisher
- type PubSubSubscriber
- type PubSubTopic
- type RPC
- type Resource
- type ResourceType
- type SQLDB
- type Service
- type ServiceStruct
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessType ¶
type AccessType string
const ( Public AccessType = "public" Private AccessType = "private" // Auth is like public but requires authentication. Auth AccessType = "auth" )
type Application ¶
type Application struct { ModulePath string Packages []*Package Services []*Service CronJobs []*CronJob PubSubTopics []*PubSubTopic Decls []*schema.Decl AuthHandler *AuthHandler Middleware []*Middleware }
func (*Application) MatchingMiddleware ¶ added in v1.5.0
func (a *Application) MatchingMiddleware(rpc *RPC) []*Middleware
MatchingMiddleware reports which middleware applies to the given RPC, and the order they apply in.
type AuthHandler ¶
type AuthHandler struct { Svc *Service Name string Doc string Func *ast.FuncDecl File *File Params *schema.Type // builtin string or named type // AuthData is the custom auth data type the app may specify // as part of the returns from the auth handler. // It is nil if no such auth data type is specified. AuthData *Param }
type CronJob ¶ added in v0.19.0
type CronJob struct { ID string Title string Doc string Schedule string RPC *RPC DeclFile *File AST *ast.Ident }
func (*CronJob) AllowOnlyParsedUsage ¶ added in v1.3.0
func (*CronJob) Type ¶ added in v1.3.0
func (cj *CronJob) Type() ResourceType
type Middleware ¶ added in v1.5.0
type PubSubGuarantee ¶ added in v1.3.0
type PubSubGuarantee int
const ( AtLeastOnce PubSubGuarantee = iota ExactlyOnce )
type PubSubPublisher ¶ added in v1.3.0
type PubSubPublisher struct {
DeclFile *File // The file the publisher is declared in
}
type PubSubSubscriber ¶ added in v1.3.0
type PubSubSubscriber struct { Name string // The unique name of the subscriber Topic *PubSubTopic // The topic the subscriber is registered against CallSite ast.Node // The AST node representing the creation of the subscriber Func ast.Node // The function that is the subscriber (either a *ast.FuncLit or a *ast.FuncDecl) FuncFile *File // The file the subscriber function is declared in DeclFile *File // The file that the subscriber is defined in IdentAST *ast.Ident // The AST node representing the value this topic is bound against AckDeadline time.Duration MessageRetention time.Duration MinRetryBackoff time.Duration MaxRetryBackoff time.Duration MaxRetries int64 // number of attempts }
func (*PubSubSubscriber) AllowOnlyParsedUsage ¶ added in v1.3.0
func (p *PubSubSubscriber) AllowOnlyParsedUsage() bool
func (*PubSubSubscriber) File ¶ added in v1.3.0
func (p *PubSubSubscriber) File() *File
func (*PubSubSubscriber) Ident ¶ added in v1.3.0
func (p *PubSubSubscriber) Ident() *ast.Ident
func (*PubSubSubscriber) NodeType ¶ added in v1.3.0
func (p *PubSubSubscriber) NodeType() NodeType
func (*PubSubSubscriber) Type ¶ added in v1.3.0
func (p *PubSubSubscriber) Type() ResourceType
type PubSubTopic ¶ added in v1.3.0
type PubSubTopic struct { Name string // The unique name of the pub sub topic Doc string // The documentation on the pub sub topic DeliveryGuarantee PubSubGuarantee // What guarantees does the pub sub topic have? OrderingKey string // What field in the message type should be used to ensure First-In-First-Out (FIFO) for messages with the same key DeclFile *File // What file the topic is declared in MessageType *Param // The message type of the pub sub topic IdentAST *ast.Ident // The AST node representing the value this topic is bound against Subscribers []*PubSubSubscriber Publishers []*PubSubPublisher }
func (*PubSubTopic) AllowOnlyParsedUsage ¶ added in v1.3.0
func (p *PubSubTopic) AllowOnlyParsedUsage() bool
func (*PubSubTopic) File ¶ added in v1.3.0
func (p *PubSubTopic) File() *File
func (*PubSubTopic) Ident ¶ added in v1.3.0
func (p *PubSubTopic) Ident() *ast.Ident
func (*PubSubTopic) NodeType ¶ added in v1.3.0
func (p *PubSubTopic) NodeType() NodeType
func (*PubSubTopic) Type ¶ added in v1.3.0
func (p *PubSubTopic) Type() ResourceType
type RPC ¶
type RPC struct { Svc *Service Name string Doc string Func *ast.FuncDecl File *File Access AccessType Raw bool Path *paths.Path HTTPMethods []string Request *Param // request data; nil for Raw RPCs Response *Param // response data; nil for Raw RPCs Tags selector.Set // SvcStruct is the service struct this RPC is defined on, // or nil otherwise. It is always a pointer receiver. SvcStruct *ServiceStruct }
type ResourceType ¶ added in v0.17.2
type ResourceType int
const ( SQLDBResource ResourceType = iota + 1 CronJobResource PubSubTopicResource PubSubSubscriptionResource )
func (ResourceType) String ¶ added in v0.17.2
func (i ResourceType) String() string
type SQLDB ¶ added in v0.17.2
type SQLDB struct { DeclFile *File DeclName *ast.Ident // where the resource is declared DBName string }
func (*SQLDB) AllowOnlyParsedUsage ¶ added in v1.3.0
func (*SQLDB) Type ¶ added in v0.17.2
func (r *SQLDB) Type() ResourceType
type Service ¶
type Service struct { Name string Root *Package Pkgs []*Package RPCs []*RPC Middleware []*Middleware // Struct is the dependency injection struct, or nil if none exists. Struct *ServiceStruct }
A Service is a Go package that defines one or more RPCs. Its name is defined by the Go package name. A Service may not be a located in a child directory of another service.
type ServiceStruct ¶ added in v1.5.0
type ServiceStruct struct { Name string Svc *Service File *File // where the struct is defined Doc string Decl *ast.TypeSpec RPCs []*RPC // RPCs defined on the service struct // Init is the function for initializing this group. // It is nil if there is no initialization function. Init *ast.FuncDecl InitFile *File // where the init func is declared }
ServiceStruct describes a dependency injection struct a particular service defines.
Click to show internal directories.
Click to hide internal directories.