/
t3
/
cli
Обзор
Документация
Войти
/
t3
/
cli
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
internal/engine/bridge/console.go
52 строки
1 KB
Ivan Shibkikh
fix controller logger
07 июл 2026, 10:55
07 июл 2026, 10:55
c98f2ff
Код
Авторство
О чём код?
package bridge import ( "bytes" "fmt" "io" "log/slog" "time" "github.com/dop251/goja" ) func NewConsole(vm *goja.Runtime, logger *slog.Logger, controllerWriter io.Writer) { obj := vm.NewObject() obj.Set("log", func(call goja.FunctionCall) goja.Value { if len(call.Arguments) > 0 { msg := buildConsoleMessage(call.Arguments) logger.Info("console.log called", "msg", msg) if controllerWriter != nil { fmt.Fprintf(controllerWriter, "[INFO] %s : console.log called\n msg: %s\n", time.Now().Format(time.RFC3339), msg) } } return goja.Undefined() }) obj.Set("error", func(call goja.FunctionCall) goja.Value { if len(call.Arguments) > 0 { msg := buildConsoleMessage(call.Arguments) logger.Error("console.error called", "msg", msg) if controllerWriter != nil { fmt.Fprintf(controllerWriter, "[ERROR] %s : console.error called\n msg: %s\n", time.Now().Format(time.RFC3339), msg) } } return goja.Undefined() }) vm.Set("console", obj) } func buildConsoleMessage(values []goja.Value) string { var buf bytes.Buffer for i, arg := range values { if i > 0 { buf.WriteByte(' ') } buf.WriteString(arg.String()) } return buf.String() }