diff options
| author | Philipp Tanlak <philipp.tanlak@gmail.com> | 2023-10-11 19:53:56 +0200 |
|---|---|---|
| committer | Philipp Tanlak <philipp.tanlak@gmail.com> | 2023-10-11 19:53:56 +0200 |
| commit | a77e30e43fdca6caafe18c648d632496fd38eca0 (patch) | |
| tree | aab0040aa9dba4517962307762796338f21ac42f | |
| parent | 1fc497fbdc79a43c62ac2e8eaf4827752dbeef8e (diff) | |
Fix jsonprint output in dev mode
| -rw-r--r-- | go.mod | 1 | ||||
| -rw-r--r-- | go.sum | 3 | ||||
| -rw-r--r-- | js.go | 7 | ||||
| -rw-r--r-- | modules/jsonprint/jsonprint.go | 4 |
4 files changed, 14 insertions, 1 deletions
@@ -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 @@ -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= @@ -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 { |