Documentation
¶
Index ¶
- Constants
- Variables
- func DetectAppType(file string) string
- func KnownType(typ string) string
- type App
- type AppNeed
- type BasicApp
- func (a *BasicApp) Check(cfg *Project) error
- func (a *BasicApp) DNSPlugin() *plugins.Plugin
- func (a *BasicApp) DeployPlugin() *plugins.Plugin
- func (a *BasicApp) ID() string
- func (a *BasicApp) Name() string
- func (a *BasicApp) Normalize(cfg *Project) error
- func (a *BasicApp) Path() string
- func (a *BasicApp) PluginType() *types.App
- func (a *BasicApp) RunPlugin() *plugins.Plugin
- func (a *BasicApp) Type() string
- func (a *BasicApp) URL() string
- func (a *BasicApp) Validate() error
- type DNS
- 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) Validate() error
- 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) 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 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
- func (s *State) Validate() error
- type StaticApp
- type StaticAppBuild
- type YAMLEvaluator
Constants ¶
View Source
const ( TypeStatic = "static" StaticAppRoutingReact = "react" StaticAppRoutingDisabled = "disabled" DefaultStaticAppBuildDir = "build" )
View Source
const ( ProjectYAMLName = "project.outblocks" AppYAMLName = "outblocks" LockfileName = "outblocks.lock" )
View Source
const ( StateLocal = "local" StateDefaultEnv = "dev" StateLocalPath = ".outblocks.state" )
View Source
const (
TypeFunction = "function"
)
View Source
const (
TypeService = "service"
)
Variables ¶
View Source
var ( ValidURLRegex = regexp.MustCompile(`^([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,20}$`) ValidAppTypes = []string{TypeStatic, TypeFunction, TypeService} )
View Source
var (
DefaultKnownTypes = map[string][]string{
TypeFunction: {"functions"},
TypeStatic: {"statics"},
TypeService: {"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, StaticAppRoutingDisabled}
)
Functions ¶
func DetectAppType ¶ added in v0.1.7
Types ¶
type App ¶
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"` AppURL string `json:"url"` AppPath string `json:"-"` Deploy string `json:"deploy"` Needs map[string]*AppNeed `json:"needs"` Other map[string]interface{} `yaml:"-,remain"` // contains filtered or unexported fields }
func (*BasicApp) DeployPlugin ¶
func (*BasicApp) PluginType ¶
type DNS ¶
type Dependency ¶
type Dependency struct { Name string `json:"-"` Type string `json:"type"` Deploy string `json:"deploy"` 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) Validate ¶
func (d *Dependency) Validate() error
type FunctionApp ¶
type FunctionApp struct {
BasicApp `json:",inline"`
}
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"` Apps []App `json:"-"` AppMap map[string]App `json:"-"` Path 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"`
}
type State ¶
type StaticApp ¶
type StaticApp struct { BasicApp `json:",inline"` Build *StaticAppBuild `json:"build,omitempty"` Routing string `json:"routing"` }
func (*StaticApp) PluginType ¶
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.