Add console javascript object for backwards compatibility (#4944)

This commit is contained in:
WithoutPants 2024-06-07 14:53:51 +10:00 committed by GitHub
parent dbfa450ace
commit 60446af145
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 38 additions and 0 deletions

26
pkg/javascript/console.go Normal file
View File

@ -0,0 +1,26 @@
package javascript
import "fmt"
type console struct {
Log
}
func (c *console) AddToVM(globalName string, vm *VM) error {
console := vm.NewObject()
if err := SetAll(console,
ObjectValueDef{"log", c.logInfo},
ObjectValueDef{"error", c.logError},
ObjectValueDef{"warn", c.logWarn},
ObjectValueDef{"info", c.logInfo},
ObjectValueDef{"debug", c.logDebug},
); err != nil {
return err
}
if err := vm.Set(globalName, console); err != nil {
return fmt.Errorf("unable to set console: %w", err)
}
return nil
}

View File

@ -7,6 +7,7 @@ import (
"reflect"
"github.com/dop251/goja"
"github.com/stashapp/stash/pkg/logger"
)
type VM struct {
@ -36,6 +37,17 @@ func (tfm optionalFieldNameMapper) MethodName(t reflect.Type, m reflect.Method)
func NewVM() *VM {
r := goja.New()
// enable console for backwards compatibility
c := console{
Log{
Logger: logger.Logger,
},
}
// there should not be any reason for this to fail
_ = c.AddToVM("console", &VM{Runtime: r})
r.SetFieldNameMapper(optionalFieldNameMapper{goja.TagFieldNameMapper("json", true)})
return &VM{Runtime: r}
}