wip3
This commit is contained in:
@@ -1,9 +1,14 @@
|
||||
// Example: How to add builtins to the framework
|
||||
// Just write a Go function and register it - that's all!
|
||||
|
||||
package main
|
||||
package standard
|
||||
|
||||
import "fmt"
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/dop251/goja"
|
||||
"reichard.io/poiesis/internal/runtime/pkg/builtin"
|
||||
)
|
||||
|
||||
// Simple function - just register it!
|
||||
func multiply(a, b int) int {
|
||||
@@ -33,14 +38,25 @@ func getUser(id int) (User, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Register all builtins in init
|
||||
// Optional: Register custom converter for User type
|
||||
func convertUser(vm *goja.Runtime, user User) goja.Value {
|
||||
obj := vm.NewObject()
|
||||
_ = obj.Set("name", user.Name)
|
||||
_ = obj.Set("email", user.Email)
|
||||
_ = obj.Set("age", user.Age)
|
||||
return obj
|
||||
}
|
||||
|
||||
// In a real file, you'd put this in init():
|
||||
//
|
||||
// func init() {
|
||||
// RegisterBuiltin("multiply", multiply)
|
||||
// RegisterBuiltin("divide", divide)
|
||||
// RegisterBuiltin("getUser", getUser)
|
||||
// builtin.RegisterCustomConverter(convertUser)
|
||||
// builtin.RegisterBuiltin("multiply", multiply)
|
||||
// builtin.RegisterBuiltin("divide", divide)
|
||||
// builtin.RegisterBuiltin("getUser", getUser)
|
||||
// }
|
||||
|
||||
// That's it! TypeScript definitions are auto-generated:
|
||||
// declare function multiply(arg0: number, arg1: number): number;
|
||||
// declare function divide(arg0: number, arg1: number): number;
|
||||
// declare function getUser(arg0: number): any;
|
||||
// declare function getUser(arg0: number): User;
|
||||
|
||||
Reference in New Issue
Block a user