37 lines
869 B
Go
37 lines
869 B
Go
package url
|
|
|
|
import (
|
|
"apigo.cc/ai/ai/goja"
|
|
"apigo.cc/ai/ai/goja_nodejs/require"
|
|
)
|
|
|
|
const ModuleName = "url"
|
|
|
|
type urlModule struct {
|
|
r *goja.Runtime
|
|
|
|
URLSearchParamsPrototype *goja.Object
|
|
URLSearchParamsIteratorPrototype *goja.Object
|
|
}
|
|
|
|
func Require(runtime *goja.Runtime, module *goja.Object) {
|
|
exports := module.Get("exports").(*goja.Object)
|
|
m := &urlModule{
|
|
r: runtime,
|
|
}
|
|
exports.Set("URL", m.createURLConstructor())
|
|
exports.Set("URLSearchParams", m.createURLSearchParamsConstructor())
|
|
exports.Set("domainToASCII", m.domainToASCII)
|
|
exports.Set("domainToUnicode", m.domainToUnicode)
|
|
}
|
|
|
|
func Enable(runtime *goja.Runtime) {
|
|
m := require.Require(runtime, ModuleName).ToObject(runtime)
|
|
runtime.Set("URL", m.Get("URL"))
|
|
runtime.Set("URLSearchParams", m.Get("URLSearchParams"))
|
|
}
|
|
|
|
func init() {
|
|
require.RegisterCoreModule(ModuleName, Require)
|
|
}
|