Documentation
¶
Index ¶
- Constants
- Variables
- func DetectAppType(data []byte) (string, error)
- func KnownType(typ string) string
- type App
- type AppDeploy
- type AppNeed
- type AppRun
- type BasicApp
- func (a *BasicApp) Check(cfg *Project) error
- func (a *BasicApp) DNSPlugin() *plugins.Plugin
- func (a *BasicApp) DeployInfo() *AppDeploy
- func (a *BasicApp) DeployPlugin() *plugins.Plugin
- func (a *BasicApp) Dir() string
- func (a *BasicApp) ID() string
- func (a *BasicApp) Name() string
- func (a *BasicApp) Normalize(cfg *Project) error
- func (a *BasicApp) PathRedirect() string
- func (a *BasicApp) PluginType() *types.App
- func (a *BasicApp) RunInfo() *AppRun
- func (a *BasicApp) RunPlugin() *plugins.Plugin
- func (a *BasicApp) SupportsLocal() bool
- func (a *BasicApp) Type() string
- func (a *BasicApp) URL() *url.URL
- func (a *BasicApp) Validate() error
- func (a *BasicApp) YAMLError(path, msg string) error
- type DNS
- type Defaults
- type DefaultsDeploy
- type DefaultsRun
- type Dependency
- func (d *Dependency) Check(key string, cfg *Project) error
- func (d *Dependency) DeployPlugin() *plugins.Plugin
- func (d *Dependency) ID() string
- func (d *Dependency) Normalize(key string, cfg *Project) error
- func (d *Dependency) PluginType() *types.Dependency
- func (d *Dependency) RunPlugin() *plugins.Plugin
- func (d *Dependency) SupportsLocal() bool
- func (d *Dependency) Validate() error
- type DependencyDeploy
- type DependencyRun
- type FunctionApp
- type Plugin
- type Project
- func (p *Project) FindDNSPlugin(url string) *plugins.Plugin
- func (p *Project) FindDependency(n string) *Dependency
- func (p *Project) FindLoadedPlugin(name string) *plugins.Plugin
- func (p *Project) FullCheck() error
- func (p *Project) ID() string
- func (p *Project) LoadApps() error
- func (p *Project) LoadFile(file string) error
- func (p *Project) LoadFiles(files []string) error
- func (p *Project) LoadPlugins(ctx context.Context, log logger.Logger, loader *plugins.Loader) error
- func (p *Project) LoadedPlugins() []*plugins.Plugin
- func (p *Project) Lockfile() *lockfile.Lockfile
- func (p *Project) Normalize() error
- func (p *Project) PluginLock(plug *Plugin) *lockfile.Plugin
- func (p *Project) RegisterApp(app App) bool
- func (p *Project) SetLoadedPlugins(plugs []*plugins.Plugin)
- func (p *Project) Validate() error
- func (p *Project) YAMLData() []byte
- type ProjectOptions
- type ServiceApp
- type ServiceAppBuild
- type State
- func (s *State) Check(cfg *Project) error
- func (s *State) IsLocal() bool
- func (s *State) LoadLocal() (*types.StateData, error)
- func (s *State) LocalPath() string
- func (s *State) Normalize(cfg *Project) error
- func (s *State) Plugin() *plugins.Plugin
- func (s *State) SaveLocal(d *types.StateData) error
- type StaticApp
- type StaticAppBuild
- type YAMLEvaluator
Constants ¶
View Source
const ( AppTypeStatic = "static" StaticAppRoutingReact = "react" StaticAppRoutingGatsby = "gatsby" StaticAppRoutingDisabled = "disabled" DefaultStaticAppBuildDir = "build" )
View Source
const ( ProjectYAMLName = "project.outblocks" AppYAMLName = "outblocks" LockfileName = "outblocks.lock" )
View Source
const ( StateLocal = "local" StateLocalPath = ".outblocks.state" )
View Source
const (
AppTypeFunction = "function"
)
View Source
const (
AppTypeService = "service"
)
Variables ¶
View Source
var ( ValidURLRegex = regexp.MustCompile(`^(https?://)?([a-zA-Z][a-zA-Z0-9-]*)((\.)([a-zA-Z][a-zA-Z0-9-]*)){1,}(/[a-zA-Z0-9-_]+)*(/)?$`) ValidNameRegex = regexp.MustCompile(`^[a-zA-Z][a-zA-Z0-9_-]{0,30}$`) ValidAppTypes = []string{AppTypeStatic, AppTypeFunction, AppTypeService} RunPluginDirect = "direct" )
View Source
var (
DefaultKnownTypes = map[string][]string{
AppTypeFunction: {"functions"},
AppTypeStatic: {"statics"},
AppTypeService: {"services"},
}
)
View Source
var (
ErrProjectConfigNotFound = errors.New("cannot find project config file, did you forget to initialize? run:\nok init")
)
View Source
var (
StaticAppRoutings = []string{StaticAppRoutingReact, StaticAppRoutingGatsby, StaticAppRoutingDisabled}
)
Functions ¶
func DetectAppType ¶ added in v0.1.7
Types ¶
type App ¶
type App interface { ID() string Name() string Dir() string URL() *url.URL PathRedirect() string Normalize(cfg *Project) error Check(cfg *Project) error Type() string PluginType() *types.App RunInfo() *AppRun DeployInfo() *AppDeploy SupportsLocal() bool YAMLError(path, msg string) error DeployPlugin() *plugins.Plugin RunPlugin() *plugins.Plugin DNSPlugin() *plugins.Plugin }
type AppNeed ¶
type AppNeed struct { Other map[string]interface{} `yaml:"-,remain"` // contains filtered or unexported fields }
func (*AppNeed) Dependency ¶
func (n *AppNeed) Dependency() *Dependency
func (*AppNeed) PluginType ¶
type BasicApp ¶
type BasicApp struct { AppName string `json:"name"` AppType string `json:"type"` AppURL string `json:"url"` AppPathRedirect string `json:"pathRedirect"` AppDir string `json:"dir"` AppRun *AppRun `json:"run"` AppDeploy *AppDeploy `json:"deploy"` Needs map[string]*AppNeed `json:"needs"` Other map[string]interface{} `yaml:"-,remain"` // contains filtered or unexported fields }
func (*BasicApp) DeployInfo ¶ added in v0.1.12
func (*BasicApp) DeployPlugin ¶
func (*BasicApp) PathRedirect ¶ added in v0.1.12
func (*BasicApp) PluginType ¶
func (*BasicApp) SupportsLocal ¶ added in v0.1.12
type DNS ¶
type Defaults ¶ added in v0.1.23
type Defaults struct { Run DefaultsRun `json:"run,omitempty"` Deploy DefaultsDeploy `json:"deploy,omitempty"` }
type DefaultsDeploy ¶ added in v0.1.23
type DefaultsRun ¶ added in v0.1.23
type Dependency ¶
type Dependency struct { Name string `json:"-"` Type string `json:"type"` Deploy *DependencyDeploy `json:"deploy"` Run *DependencyRun `json:"run"` Other map[string]interface{} `yaml:"-,remain"` // contains filtered or unexported fields }
func (*Dependency) DeployPlugin ¶
func (d *Dependency) DeployPlugin() *plugins.Plugin
func (*Dependency) ID ¶
func (d *Dependency) ID() string
func (*Dependency) PluginType ¶
func (d *Dependency) PluginType() *types.Dependency
func (*Dependency) RunPlugin ¶
func (d *Dependency) RunPlugin() *plugins.Plugin
func (*Dependency) SupportsLocal ¶ added in v0.1.12
func (d *Dependency) SupportsLocal() bool
func (*Dependency) Validate ¶
func (d *Dependency) Validate() error
type DependencyDeploy ¶ added in v0.1.12
type DependencyRun ¶ added in v0.1.12
type FunctionApp ¶
type FunctionApp struct {
BasicApp `json:",inline"`
}
func (*FunctionApp) SupportsLocal ¶ added in v0.1.12
func (s *FunctionApp) SupportsLocal() bool
func (*FunctionApp) Validate ¶ added in v0.1.18
func (s *FunctionApp) Validate() error
type Plugin ¶
type Plugin struct { Name string `json:"name"` Version string `json:"version"` Source string `json:"source,omitempty"` Other map[string]interface{} `yaml:"-,remain"` // contains filtered or unexported fields }
func (*Plugin) VerConstr ¶ added in v0.1.5
func (p *Plugin) VerConstr() *semver.Constraints
type Project ¶
type Project struct { Name string `json:"name,omitempty"` State *State `json:"state,omitempty"` Dependencies map[string]*Dependency `json:"dependencies,omitempty"` Plugins []*Plugin `json:"plugins,omitempty"` DNS []*DNS `json:"dns,omitempty"` Defaults *Defaults `json:"defaults,omitempty"` Apps []App `json:"-"` AppMap map[string]App `json:"-"` Dir string `json:"-"` // contains filtered or unexported fields }
func LoadProjectConfig ¶
func LoadProjectConfig(cfgPath string, vars map[string]interface{}, opts *ProjectOptions) (*Project, error)
func LoadProjectConfigData ¶
func (*Project) FindDependency ¶
func (p *Project) FindDependency(n string) *Dependency
func (*Project) FullCheck ¶
Logic validation after everything is loaded, e.g. check for supported types.
func (*Project) LoadPlugins ¶ added in v0.1.5
func (*Project) LoadedPlugins ¶
func (*Project) RegisterApp ¶
func (*Project) SetLoadedPlugins ¶ added in v0.1.2
type ProjectOptions ¶ added in v0.1.5
type ProjectOptions struct {
Env string
}
type ServiceApp ¶
type ServiceApp struct { BasicApp `json:",inline"` Build *ServiceAppBuild `json:"build,omitempty"` DockerHash string `json:"-"` }
func (*ServiceApp) LocalDockerImage ¶ added in v0.1.18
func (s *ServiceApp) LocalDockerImage() string
func (*ServiceApp) PluginType ¶ added in v0.1.18
func (s *ServiceApp) PluginType() *types.App
func (*ServiceApp) SupportsLocal ¶ added in v0.1.12
func (s *ServiceApp) SupportsLocal() bool
func (*ServiceApp) Validate ¶ added in v0.1.18
func (s *ServiceApp) Validate() error
type ServiceAppBuild ¶ added in v0.1.18
type State ¶
type StaticApp ¶
type StaticApp struct { BasicApp `json:",inline"` Build *StaticAppBuild `json:"build,omitempty"` Routing string `json:"routing"` }
func (*StaticApp) PluginType ¶
func (*StaticApp) SupportsLocal ¶ added in v0.1.12
type StaticAppBuild ¶
type YAMLEvaluator ¶
type YAMLEvaluator struct {
// contains filtered or unexported fields
}
func NewYAMLEvaluator ¶
func NewYAMLEvaluator(vars map[string]interface{}) *YAMLEvaluator
Click to show internal directories.
Click to hide internal directories.