package
Version:
v0.3.1
Opens a new window with list of versions in this module.
Published: Dec 6, 2023
License: MIT, MIT
Opens a new window with license information.
Imports: 6
Opens a new window with list of imports.
Imported by: 0
Opens a new window with list of known importers.
README
¶
English | 简体中文
Features
- fetch:
fetch
- base64:
atob
and btoa
- window:
window
- console:
console.log
and console.error
and console.warn
and console.info
and console.debug
and console.trace
- timers:
setTimeout
and setInterval
and clearTimeout
and clearInterval
Usage
package main
import (
"time"
"github.com/fiatjaf/quickjs-go"
"github.com/fiatjaf/quickjs-go/polyfill"
)
func main() {
// Create a new runtime
rt := quickjs.NewRuntime()
defer rt.Close()
// Create a new context
ctx := rt.NewContext()
defer ctx.Close()
// Inject polyfills to the context
polyfill.InjectAll(ctx)
ret, _ := ctx.Eval(`
setTimeout(() => {
fetch('https://api.github.com/users/buke', {Method: 'GET'}).then(response => response.json()).then(data => {
console.log(data.login);
});
}, 50);
`)
defer ret.Free()
// Wait for the timeout to finish
time.Sleep(time.Millisecond * 100)
rt.ExecuteAllPendingJobs()
// Output:
// buke
}
Documentation
Go Reference & more examples: https://pkg.go.dev/github.com/fiatjaf/quickjs-go/polyfill
License
MIT
Documentation
¶
// Create a new runtime
rt := quickjs.NewRuntime()
defer rt.Close()
// Create a new context
ctx := rt.NewContext()
defer ctx.Close()
// Inject polyfills to the context
polyfill.InjectAll(ctx)
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
w.Header().Set("Content-Type", "application/json; utf-8")
_, _ = w.Write([]byte(`{"status": true}`))
}))
ret, _ := ctx.Eval(fmt.Sprintf(`
setTimeout(() => {
fetch('%s', {Method: 'GET'}).then(response => response.json()).then(data => {
console.log(data.status);
});
}, 50);
`, srv.URL))
defer ret.Free()
time.Sleep(time.Millisecond * 100)
rt.ExecuteAllPendingJobs()
Output:
true
func InjectAll(ctx *quickjs.Context)
Source Files
¶
Directories
¶
pkg
|
|
|
|
|
|
|
|
|
|
|
|
Click to show internal directories.
Click to hide internal directories.