This commit is contained in:
cdle
2023-07-08 12:57:11 +08:00
parent 4bf46badb4
commit 87e6f98876
11 changed files with 133 additions and 71 deletions
+26
View File
@@ -25,6 +25,13 @@ func MakeBucketObject(vm *goja.Runtime, uuid string, on_start bool, bucket stora
}
return msg
})
obj.Set("set2", func(key, value interface{}) interface{} {
msg, err := SetBucketKeyValue2(bucket, key, value)
if err != nil {
panic(Error(vm, err))
}
return msg
})
obj.Set("delete", func(key interface{}) error {
_, err := bucket.Set(key, "")
return err
@@ -94,3 +101,22 @@ func JsBucket(vm *goja.Runtime, name string, uuid string, on_start bool) goja.Pr
},
})
}
func JsBucket2(vm *goja.Runtime, name string, uuid string, on_start bool) goja.Proxy {
return vm.NewProxy(MakeBucketObject(vm, uuid, on_start, MakeBucket(name)), &goja.ProxyTrapConfig{
Get: func(target *goja.Object, property string, receiver goja.Value) (value goja.Value) {
obj := target.Get(property)
if obj != nil {
return obj
}
result := target.Get("get").Export().(func(...interface{}) interface{})(property)
return vm.ToValue(result)
},
Set: func(target *goja.Object, property string, value, receiver goja.Value) (success bool) {
target.Get("set2").Export().(func(interface{}, interface{}) interface{})(
property, value.Export(),
)
return true
},
})
}