Documentation
¶
Overview ¶
Package jsre provides execution environment for JavaScript.
Index ¶
- Variables
- func MakeCallback(vm *goja.Runtime, fn func(Call) (goja.Value, error)) goja.Value
- func SafeGet(obj *goja.Object, key string) (ret goja.Value)
- type Call
- type JSRE
- func (re *JSRE) Compile(filename string, src string) (err error)
- func (jsre *JSRE) CompleteKeywords(line string) []string
- func (re *JSRE) Do(fn func(*goja.Runtime))
- func (re *JSRE) Evaluate(code string, w io.Writer)
- func (re *JSRE) Exec(file string) error
- func (re *JSRE) Interrupt(v interface{})
- func (re *JSRE) Run(code string) (v goja.Value, err error)
- func (re *JSRE) Set(ns string, v interface{}) (err error)
- func (re *JSRE) Stop(waitForCallbacks bool)
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func MakeCallback ¶
MakeCallback turns the given function into a function that's callable by JS.
Types ¶
type Call ¶
type Call struct { goja.FunctionCall VM *goja.Runtime }
Call is the argument type of Go functions which are callable from JS.
type JSRE ¶
type JSRE struct {
// contains filtered or unexported fields
}
JSRE is a JS runtime environment embedding the goja interpreter. It provides helper functions to load code from files, run code snippets and bind native go objects to JS.
The runtime runs all code on a dedicated event loop and does not expose the underlying goja runtime directly. To use the runtime, call JSRE.Do. When binding a Go function, use the Call type to gain access to the runtime.
func New ¶
New creates and initializes a new JavaScript runtime environment (JSRE). The runtime is configured with the provided assetPath for loading scripts and an output writer for logging or printing results.
The returned JSRE must be stopped by calling Stop() after use to release resources. Attempting to use the JSRE after stopping it will result in undefined behavior.
Parameters:
- assetPath: The path to the directory containing script assets.
- output: The writer used for logging or printing runtime output.
Returns:
- A pointer to the newly created JSRE instance.
func (*JSRE) CompleteKeywords ¶
CompleteKeywords returns potential continuations for the given line. Since line is evaluated, callers need to make sure that evaluating line does not have side effects.
func (*JSRE) Do ¶
Do executes the given function on the JS event loop. When the runtime is stopped, fn will not execute.
func (*JSRE) Evaluate ¶
Evaluate executes code and pretty prints the result to the specified output stream.
func (*JSRE) Exec ¶
Exec loads and executes the contents of a JavaScript file. If a relative path is provided, the file is resolved relative to the JSRE's assetPath. The file is read, compiled, and executed in the JSRE's runtime environment.
Parameters:
- file: The path to the JavaScript file to execute. Can be an absolute path or relative to assetPath.
Returns:
- error: An error if the file cannot be read, compiled, or executed.
func (*JSRE) Interrupt ¶
func (re *JSRE) Interrupt(v interface{})
Interrupt stops the current JS evaluation.