mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-04 15:49:49 +00:00
69 lines
1.3 KiB
Go
69 lines
1.3 KiB
Go
package formdata
|
|
|
|
import "github.com/dop251/goja"
|
|
|
|
type FormData struct {
|
|
data map[string]any
|
|
}
|
|
|
|
func (fd *FormData) Append(name string, value any) {
|
|
fd.data[name] = value
|
|
}
|
|
|
|
func (fd *FormData) Delete(name string) {
|
|
delete(fd.data, name)
|
|
}
|
|
|
|
func (fd *FormData) Entries() []any {
|
|
var entries []any
|
|
for k, v := range fd.data {
|
|
entries = append(entries, []any{k, v})
|
|
}
|
|
return entries
|
|
}
|
|
|
|
func (fd *FormData) Get(name string) any {
|
|
return fd.data[name]
|
|
}
|
|
|
|
func (fd *FormData) GetAll(name string) []any {
|
|
return []any{fd.data[name]}
|
|
}
|
|
|
|
func (fd *FormData) Has(name string) bool {
|
|
_, ok := fd.data[name]
|
|
return ok
|
|
}
|
|
|
|
func (fd *FormData) Keys() []string {
|
|
var keys []string
|
|
for k := range fd.data {
|
|
keys = append(keys, k)
|
|
}
|
|
return keys
|
|
}
|
|
|
|
func (fd *FormData) Set(name string, value any) {
|
|
fd.data[name] = value
|
|
}
|
|
|
|
func (fd *FormData) Values() []any {
|
|
var values []any
|
|
for _, v := range fd.data {
|
|
values = append(values, v)
|
|
}
|
|
return values
|
|
}
|
|
|
|
func Enable(runtime *goja.Runtime) error {
|
|
file := runtime.ToValue(func(call goja.ConstructorCall) *goja.Object {
|
|
instance := &FormData{
|
|
data: make(map[string]any),
|
|
}
|
|
instanceValue := runtime.ToValue(instance).(*goja.Object)
|
|
instanceValue.SetPrototype(call.This.Prototype())
|
|
return instanceValue
|
|
})
|
|
return runtime.Set("FormData", file)
|
|
}
|