yao/sui/core/interfaces.go
2023-10-05 19:07:26 +08:00

67 lines
1.5 KiB
Go

package core
// SUIs the loaded SUI instances
var SUIs = map[string]SUI{}
// SUI is the interface for the SUI
type SUI interface {
GetTemplates() ([]ITemplate, error)
GetTemplate(name string) (ITemplate, error)
UploadTemplate(src string, dst string) (ITemplate, error)
}
// ITemplate is the interface for the ITemplate
type ITemplate interface {
Pages() ([]IPage, error)
PageTree(route string) ([]*PageTreeNode, error)
Page(route string) (IPage, error)
PageExist(route string) bool
CreatePage(route string) (IPage, error)
RemovePage(route string) error
GetPageFromAsset(asset string) (IPage, error)
Blocks() ([]IBlock, error)
Block(name string) (IBlock, error)
Components() ([]IComponent, error)
Component(name string) (IComponent, error)
Assets() []string
Locales() []SelectOption
Themes() []SelectOption
Asset(file string) (*Asset, error)
}
// IPage is the interface for the page
type IPage interface {
Load() error
Get() *Page
Save(request *RequestSource) error
SaveTemp(request *RequestSource) error
Remove() error
EditorRender(request *Request) (*ResponseEditor, error)
EditorPageSource() SourceData
EditorScriptSource() SourceData
EditorStyleSource() SourceData
EditorDataSource() SourceData
AssetScript() (*Asset, error)
AssetStyle() (*Asset, error)
}
// IBlock is the interface for the block
type IBlock interface {
Compile() (string, error)
Load() error
Source() string
}
// IComponent is the interface for the component
type IComponent interface {
Compile() (string, error)
Load() error
Source() string
}