From a77e30e43fdca6caafe18c648d632496fd38eca0 Mon Sep 17 00:00:00 2001 From: Philipp Tanlak Date: Wed, 11 Oct 2023 19:53:56 +0200 Subject: Fix jsonprint output in dev mode --- go.mod | 1 + go.sum | 3 +++ js.go | 7 +++++++ modules/jsonprint/jsonprint.go | 4 +++- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 4341386..5e7d975 100644 --- a/go.mod +++ b/go.mod @@ -20,6 +20,7 @@ require ( github.com/kr/pretty v0.3.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect + go.kuoruan.net/v8go-polyfills v0.5.0 // indirect golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect golang.org/x/net v0.10.0 // indirect golang.org/x/sys v0.8.0 // indirect diff --git a/go.sum b/go.sum index 30c3a4c..21fcdaf 100644 --- a/go.sum +++ b/go.sum @@ -33,6 +33,8 @@ github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncj github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.kuoruan.net/v8go-polyfills v0.5.0 h1:wd2WxsFIXWK/FcrpITw6BOo8Rn24xMmd4qoHofgg8hc= +go.kuoruan.net/v8go-polyfills v0.5.0/go.mod h1:egHzK8RIHR7dPOYzhnRsomClFTVmYCtvhTWqec4JXaY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -82,5 +84,6 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +rogchap.com/v8go v0.7.0/go.mod h1:MxgP3pL2MW4dpme/72QRs8sgNMmM0pRc8DPhcuLWPAs= rogchap.com/v8go v0.9.0 h1:wYbUCO4h6fjTamziHrzyrPnpFNuzPpjZY+nfmZjNaew= rogchap.com/v8go v0.9.0/go.mod h1:MxgP3pL2MW4dpme/72QRs8sgNMmM0pRc8DPhcuLWPAs= diff --git a/js.go b/js.go index 7e1f7c0..e972453 100644 --- a/js.go +++ b/js.go @@ -9,10 +9,12 @@ import ( "errors" "fmt" "math/rand" + "os" "strings" "github.com/evanw/esbuild/pkg/api" "github.com/philippta/flyscrape/js" + "go.kuoruan.net/v8go-polyfills/console" v8 "rogchap.com/v8go" ) @@ -67,6 +69,11 @@ func build(src string) (string, error) { func vm(src string) (Config, ScrapeFunc, error) { ctx := v8.NewContext() + + if err := console.InjectTo(ctx, console.WithOutput(os.Stderr)); err != nil { + return nil, nil, fmt.Errorf("injecting console: %w", err) + } + ctx.RunScript("var module = {}", "main.js") if _, err := ctx.RunScript(removeIIFE(js.Flyscrape), "main.js"); err != nil { diff --git a/modules/jsonprint/jsonprint.go b/modules/jsonprint/jsonprint.go index 29d3375..a4be5c9 100644 --- a/modules/jsonprint/jsonprint.go +++ b/modules/jsonprint/jsonprint.go @@ -49,7 +49,9 @@ func (m *Module) ReceiveResponse(resp *flyscrape.Response) { } func (m *Module) Finalize() { - fmt.Println("\n]") + if m.once { + fmt.Println("\n]") + } } type output struct { -- cgit v1.2.3