js_engine

package
v0.0.13 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Close

func Close()

func ExecuteFile

func ExecuteFile(path string) error

func ExecuteString

func ExecuteString(script string, dir ...string) error

ExecuteString 执行 JavaScript 代码字符串(全局函数) script: 要执行的 JavaScript 代码 dir: 可选参数,指定 __dirname(用于 require),如果为空则使用默认值 "scripts"

func RegisterMethod

func RegisterMethod(name, description string, goFunc interface{}, overridable bool)

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 时调用
}

EngineConfig 引擎配置选项

func DefaultConfig

func DefaultConfig() EngineConfig

DefaultConfig 返回默认配置

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 GetEngine

func GetEngine() *JSEngine

GetEngine 获取默认引擎实例(GetJSEngine 的别名)

func GetJSEngine

func GetJSEngine() *JSEngine

GetJSEngine 获取默认引擎实例(使用默认配置,自动注入所有方法)

func NewEngine

func NewEngine(config *EngineConfig) *JSEngine

NewEngine 创建新的引擎实例(NewJSEngine 的别名)

func NewJSEngine

func NewJSEngine(config *EngineConfig) *JSEngine

NewJSEngine 创建新的引擎实例 config: 引擎配置,传入 nil 使用默认配置

func (*JSEngine) Close

func (e *JSEngine) Close()

func (*JSEngine) ExecuteFile

func (e *JSEngine) ExecuteFile(path string) error

func (*JSEngine) ExecuteString

func (e *JSEngine) ExecuteString(script string, dir ...string) error

ExecuteString 执行 JavaScript 代码字符串 script: 要执行的 JavaScript 代码 dir: 可选参数,指定 __dirname(用于 require),如果为空则使用默认值 "scripts" 支持脚本退出后的动作:

  • process.exit(0): 正常退出,执行配置的退出动作(重启/自定义/无动作)
  • process.exit(-1): 强制退出,不执行任何退出动作
  • process.exit(其他值): 正常退出,执行配置的退出动作

脚本异常退出时始终打印日志

func (*JSEngine) GetAvailableModules

func (e *JSEngine) GetAvailableModules() []string

GetAvailableModules 获取所有可用模块列表

func (*JSEngine) GetRegistry

func (e *JSEngine) GetRegistry() *MethodRegistry

func (*JSEngine) GetVM

func (e *JSEngine) GetVM() *goja.Runtime

func (*JSEngine) InjectAllMethods

func (e *JSEngine) InjectAllMethods()

InjectAllMethods 注入所有方法(公开方法,允许手动调用)

func (*JSEngine) InjectModule

func (e *JSEngine) InjectModule(moduleName string)

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

func (e *JSEngine) InjectModules(modules []string)

InjectModules 注入多个模块的方法

func (*JSEngine) RegisterMethod

func (e *JSEngine) RegisterMethod(name, description string, goFunc interface{}, overridable bool)

func (*JSEngine) RegisterModule added in v0.0.10

func (e *JSEngine) RegisterModule(modules ...model.Module)

RegisterModule 注册一个或多个模块到当前引擎实例 用户可以在自己的代码中调用此方法来注册需要的模块 支持可变长参数,可以一次注册多个模块

type MethodInfo

type MethodInfo struct {
	Name        string
	Description string
	GoFunc      interface{}
	Overridable bool
	Overridden  bool
	JSFunc      goja.Callable
}

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

Directories

Path Synopsis
define

Jump to

Keyboard shortcuts

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