Documentation
¶
Index ¶
- func Close()
- func ExecuteFile(path string) error
- func ExecuteString(script string, dir ...string) error
- func RegisterMethod(name, description string, goFunc interface{}, overridable bool)
- type DocumentationGenerator
- type EngineConfig
- type EngineState
- type ExecuteMode
- type ExitAction
- type JSEngine
- func (e *JSEngine) AddRequirePath(path string)
- func (e *JSEngine) Close()
- func (e *JSEngine) ExecuteFile(path string) error
- func (e *JSEngine) ExecuteFileWithMode(path string, mode ExecuteMode) error
- func (e *JSEngine) ExecuteString(script string, dir ...string) error
- func (e *JSEngine) ExecuteStringWithMode(script string, mode ExecuteMode, dir ...string) error
- func (e *JSEngine) GetAvailableModules() []string
- func (e *JSEngine) GetRegistry() *MethodRegistry
- func (e *JSEngine) GetState() EngineState
- func (e *JSEngine) GetVM() *goja.Runtime
- func (e *JSEngine) InjectModule(moduleName string)
- func (e *JSEngine) InjectModules(modules []string)
- func (e *JSEngine) Pause()
- func (e *JSEngine) RegisterMethod(name, description string, goFunc interface{}, overridable bool)
- func (e *JSEngine) RegisterModule(modules ...model.Module)
- func (e *JSEngine) Resume()
- func (e *JSEngine) SetRequirePaths(paths []string)
- func (e *JSEngine) Start()
- func (e *JSEngine) Stop()
- type MethodInfo
- type MethodRegistry
- func (r *MethodRegistry) Clear()
- func (r *MethodRegistry) Contains(name string) bool
- func (r *MethodRegistry) Count() int
- func (r *MethodRegistry) ExportMethodsJSON() (string, error)
- func (r *MethodRegistry) ExportMethodsJSObject() string
- func (r *MethodRegistry) GenerateJSDocumentation() string
- func (r *MethodRegistry) GetMethod(name string) (MethodInfo, bool)
- func (r *MethodRegistry) ListMethods() []MethodInfo
- func (r *MethodRegistry) OverrideMethod(name string, jsFunc goja.Callable) bool
- func (r *MethodRegistry) RemoveMethod(name string) bool
- func (r *MethodRegistry) RestoreMethod(name string) bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExecuteFile ¶
func ExecuteString ¶
ExecuteString 执行 JavaScript 代码字符串(全局函数) script: 要执行的 JavaScript 代码 dir: 可选参数,指定 __dirname(用于 require),如果为空则使用默认值 "scripts"
func RegisterMethod ¶
Types ¶
type DocumentationGenerator ¶
type DocumentationGenerator struct {
// contains filtered or unexported fields
}
func NewDocumentationGenerator ¶
func NewDocumentationGenerator() *DocumentationGenerator
func (*DocumentationGenerator) GenerateJSDocumentation ¶
func (dg *DocumentationGenerator) GenerateJSDocumentation() string
func (*DocumentationGenerator) GenerateMarkdownDocumentation ¶
func (dg *DocumentationGenerator) GenerateMarkdownDocumentation() string
func (*DocumentationGenerator) SaveJSDocumentation ¶
func (dg *DocumentationGenerator) SaveJSDocumentation(path string) error
func (*DocumentationGenerator) SaveMarkdownDocumentation ¶
func (dg *DocumentationGenerator) SaveMarkdownDocumentation(path string) error
type EngineConfig ¶
type EngineConfig struct {
WhiteList []string // 白名单:只加载这些模块,空列表 = 加载所有
BlackList []string // 黑名单:跳过这些模块,空列表 = 不跳过任何
FailFast bool // 是否在模块加载失败时立即失败,false = 跳过失败模块继续
FileSystem fs.FS // 文件系统,用于 require 功能
OnExit ExitAction // 脚本退出后的动作,默认为 ExitActionNone
CustomExitAction func() // 自定义退出动作函数,当 OnExit = ExitActionCustom 时调用
ExecuteMode ExecuteMode // 执行模式,默认为同步执行
RequirePaths []string // 自定义 require 路径
}
EngineConfig 引擎配置选项
type EngineState ¶ added in v0.0.22
type EngineState int
EngineState 引擎状态
const ( StateStopped EngineState = iota // 已停止 StateRunning // 运行中 StatePaused // 已暂停 )
type ExecuteMode ¶ added in v0.0.22
type ExecuteMode int
ExecuteMode 执行模式
const ( ExecuteModeSync ExecuteMode = iota // 同步执行 ExecuteModeAsync // 异步执行 )
type ExitAction ¶ added in v0.0.10
type ExitAction int
ExitAction 脚本退出后的动作类型
const ( ExitActionNone ExitAction = iota // 无动作,直接退出 ExitActionRestart // 重启脚本 ExitActionCustom // 自定义动作 )
type JSEngine ¶
type JSEngine struct {
// contains filtered or unexported fields
}
JSEngine JavaScript 引擎
func NewJSEngine ¶
func NewJSEngine(config *EngineConfig) *JSEngine
NewJSEngine 创建新的引擎实例 config: 引擎配置,传入 nil 使用默认配置
func (*JSEngine) AddRequirePath ¶ added in v0.0.22
AddRequirePath 添加自定义 require 路径
func (*JSEngine) ExecuteFile ¶
ExecuteFile 执行 JavaScript 文件
func (*JSEngine) ExecuteFileWithMode ¶ added in v0.0.22
func (e *JSEngine) ExecuteFileWithMode(path string, mode ExecuteMode) error
ExecuteFileWithMode 带执行模式的执行 JavaScript 文件 path: 要执行的 JavaScript 文件路径 mode: 执行模式
func (*JSEngine) ExecuteString ¶
ExecuteString 执行 JavaScript 代码字符串 script: 要执行的 JavaScript 代码 dir: 可选参数,指定 __dirname(用于 require),如果为空则使用默认值 "scripts" mode: 可选参数,执行模式,默认为配置中的 ExecuteMode 支持脚本退出后的动作:
- process.exit(0): 正常退出,执行配置的退出动作(重启/自定义/无动作)
- process.exit(-1): 强制退出,不执行任何退出动作
- process.exit(其他值): 正常退出,执行配置的退出动作
脚本异常退出时始终打印日志
func (*JSEngine) ExecuteStringWithMode ¶ added in v0.0.22
func (e *JSEngine) ExecuteStringWithMode(script string, mode ExecuteMode, dir ...string) error
ExecuteStringWithMode 带执行模式的执行 JavaScript 代码字符串 script: 要执行的 JavaScript 代码 mode: 执行模式 dir: 可选参数,指定 __dirname(用于 require),如果为空则使用默认值 "scripts"
func (*JSEngine) GetAvailableModules ¶
GetAvailableModules 获取所有可用模块列表
func (*JSEngine) GetRegistry ¶
func (e *JSEngine) GetRegistry() *MethodRegistry
func (*JSEngine) GetState ¶ added in v0.0.22
func (e *JSEngine) GetState() EngineState
GetState 获取引擎状态
func (*JSEngine) InjectModule ¶
InjectModule 注入指定模块的方法 module: 模块名称,支持: app, device, motion, files, images, storages, system, http, media, opencv, ppocr, console, dotocr, hud, ime, plugin, rhino, uiacc, utils, vdisplay, yolo, imgui
func (*JSEngine) InjectModules ¶
InjectModules 注入多个模块的方法
func (*JSEngine) RegisterMethod ¶
func (*JSEngine) RegisterModule ¶ added in v0.0.10
RegisterModule 注册一个或多个模块到当前引擎实例 用户可以在自己的代码中调用此方法来注册需要的模块 支持可变长参数,可以一次注册多个模块
func (*JSEngine) SetRequirePaths ¶ added in v0.0.22
SetRequirePaths 设置自定义 require 路径
type MethodInfo ¶
type MethodRegistry ¶
type MethodRegistry struct {
// contains filtered or unexported fields
}
func GetRegistry ¶
func GetRegistry() *MethodRegistry
func (*MethodRegistry) Clear ¶
func (r *MethodRegistry) Clear()
func (*MethodRegistry) Contains ¶
func (r *MethodRegistry) Contains(name string) bool
func (*MethodRegistry) Count ¶
func (r *MethodRegistry) Count() int
func (*MethodRegistry) ExportMethodsJSON ¶
func (r *MethodRegistry) ExportMethodsJSON() (string, error)
func (*MethodRegistry) ExportMethodsJSObject ¶
func (r *MethodRegistry) ExportMethodsJSObject() string
func (*MethodRegistry) GenerateJSDocumentation ¶
func (r *MethodRegistry) GenerateJSDocumentation() string
func (*MethodRegistry) GetMethod ¶
func (r *MethodRegistry) GetMethod(name string) (MethodInfo, bool)
func (*MethodRegistry) ListMethods ¶
func (r *MethodRegistry) ListMethods() []MethodInfo
func (*MethodRegistry) OverrideMethod ¶
func (r *MethodRegistry) OverrideMethod(name string, jsFunc goja.Callable) bool
func (*MethodRegistry) RemoveMethod ¶
func (r *MethodRegistry) RemoveMethod(name string) bool
func (*MethodRegistry) RestoreMethod ¶
func (r *MethodRegistry) RestoreMethod(name string) bool