appgen

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 12, 2026 License: MPL-2.0 Imports: 25 Imported by: 0

Documentation

Overview

Package appgen emits a generated Go app that embeds build output.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildBinary

func BuildBinary(appDir, binaryPath string) (string, error)

BuildBinary compiles the generated app into binaryPath.

func BuildWASM

func BuildWASM(appDir, wasmPath string) (string, error)

BuildWASM compiles the generated app into a Go js/wasm artifact.

Types

type APIEndpoint added in v0.1.5

type APIEndpoint struct {
	PageID       string
	APIName      string
	Method       string
	Route        string
	Guards       []string
	ErrorPage    string
	Binding      source.BackendBinding
	BackendAlias string
}

APIEndpoint describes a generated API handler.

type ActionEndpoint added in v0.1.5

type ActionEndpoint struct {
	PageID           string
	ActionName       string
	Method           string
	Route            string
	Guards           []string
	InputName        string
	InputType        string
	InputFields      []string
	RequiredFields   []string
	RequiredMessages map[string]string
	ValidationRules  []ActionValidationRule
	ValidatesInput   bool
	Redirect         string
	Fragments        []ActionFragment
	ErrorPage        string
	Binding          source.BackendBinding
	BackendAlias     string
}

ActionEndpoint describes a generated action handler.

type ActionFragment

type ActionFragment struct {
	Target string
	HTML   string
}

ActionFragment describes a generated partial response fragment.

type ActionValidationRule added in v0.1.5

type ActionValidationRule struct {
	Field            string
	MinLength        int
	MinLengthMessage string
	MaxLength        int
	MaxLengthMessage string
	Pattern          string
	PatternMessage   string
}

ActionValidationRule describes one generated server-side form constraint.

type BackendAdapterIR added in v0.1.5

type BackendAdapterIR struct {
	Registrations     []BackendEndpointRegistration
	ContractExposures []BackendContractExposure
	Decoders          []BackendDecoder
	Calls             []BackendHandlerCall
	Responses         []BackendResponse
	Fallbacks         []BackendFallback
}

func (BackendAdapterIR) HasRegistrations added in v0.1.5

func (ir BackendAdapterIR) HasRegistrations() bool

type BackendContractExposure added in v0.1.5

type BackendContractExposure struct {
	Endpoint    BackendEndpointRegistration
	Contract    string
	ImportAlias string
	ImportPath  string
	Type        string
	Result      string
	Roles       []string
	Guards      []string
	InputFields []source.BackendInputField
	Status      gwdkir.ContractBindingStatus
	Handler     string
	Register    string
	Message     string
	OwnerKind   gwdkir.SourceKind
	OwnerID     string
	Package     string
	Source      string
}

type BackendDecoder added in v0.1.5

type BackendDecoder struct {
	Endpoint BackendEndpointRegistration
	Function string
	Input    string
	Fields   []string
}

type BackendEndpointKind added in v0.1.5

type BackendEndpointKind string
const (
	BackendEndpointAction   BackendEndpointKind = "action"
	BackendEndpointAPI      BackendEndpointKind = "api"
	BackendEndpointFragment BackendEndpointKind = "fragment"
	BackendEndpointCommand  BackendEndpointKind = "command"
	BackendEndpointQuery    BackendEndpointKind = "query"
)

type BackendEndpointRegistration added in v0.1.5

type BackendEndpointRegistration struct {
	Kind    BackendEndpointKind
	Method  string
	Path    string
	Handler string
	PageID  string
	Name    string
}

type BackendFallback added in v0.1.5

type BackendFallback struct {
	Endpoint BackendEndpointRegistration
	Status   source.BackendBindingStatus
	Message  string
}

type BackendHandlerCall added in v0.1.5

type BackendHandlerCall struct {
	Endpoint  BackendEndpointRegistration
	Alias     string
	Function  string
	Signature source.BackendSignatureKind
	InputType string
}

type BackendResponse added in v0.1.5

type BackendResponse struct {
	Endpoint BackendEndpointRegistration
	NoStore  bool
	Partial  bool
	Redirect string
}

type FragmentEndpoint added in v0.1.5

type FragmentEndpoint struct {
	PageID       string
	FragmentName string
	Method       string
	Route        string
	Target       string
	HTML         string
	Package      string
	Uses         map[string]string
	Guards       []string
	Binding      source.BackendBinding
	BackendAlias string
}

FragmentEndpoint describes a generated server fragment handler.

type Options

type Options struct {
	Actions      []ActionEndpoint
	APIs         []APIEndpoint
	Fragments    []FragmentEndpoint
	SSR          []SSRRoute
	AutoRoutes   bool
	ProxyBackend bool
	Config       gowdk.Config
	IR           *gwdkir.Program
}

Options configures generated app output.

type Result

type Result struct {
	AppDir      string
	MainPath    string
	PackagePath string
	ModulePath  string
	OutputDir   string
	Files       []string
	BinaryPath  string
}

Result describes generated app artifacts.

func Generate

func Generate(outputDir, appDir string) (Result, error)

Generate writes a self-contained Go app that embeds outputDir.

func GenerateBackendWithOptions added in v0.1.5

func GenerateBackendWithOptions(appDir string, options Options) (Result, error)

GenerateBackendWithOptions writes a generated Go app that serves only request-time backend routes for feature-bound actions and APIs.

func GenerateWithOptions

func GenerateWithOptions(outputDir, appDir string, options Options) (Result, error)

GenerateWithOptions writes a self-contained Go app that embeds outputDir.

type SSRLoadReplacement added in v0.1.5

type SSRLoadReplacement struct {
	Path        string
	Placeholder string
}

SSRLoadReplacement maps a generated placeholder back to a request-time load field path.

type SSRReplacement

type SSRReplacement struct {
	Param       string
	Placeholder string
}

SSRReplacement maps a generated placeholder back to a request route param.

type SSRRoute

type SSRRoute struct {
	PageID           string
	Route            string
	Render           gowdk.RenderMode
	Cache            string
	ErrorPage        string
	DynamicParams    []string
	RouteParams      []source.RouteParam
	Guards           []string
	HasLoad          bool
	LoadBinding      source.BackendBinding
	LoadBackendAlias string
	HTML             string
	Replacements     []SSRReplacement
	LoadReplacements []SSRLoadReplacement
}

SSRRoute describes a generated request-time page handler.

Jump to

Keyboard shortcuts

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