Skip to content

Commit 5a88eb9

Browse files
fix: do not organize imports for wasm
1 parent 387c916 commit 5a88eb9

File tree

5 files changed

+82
-83
lines changed

5 files changed

+82
-83
lines changed

README.md

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,40 @@
22

33
[Sqlc plugin](https://sqlc.dev) to generate [gRPC](https://grpc.io/) or [Connect](https://connectrpc.com/) server from SQL.
44

5+
## Post-process
6+
7+
After execute `sqlc generate` you need to organize imorts, compile protocol buffer and fix go.mod.
8+
9+
1. Install the required tools:
10+
11+
```sh
12+
go install golang.org/x/tools/cmd/goimports@latest
13+
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest
14+
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest
15+
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
16+
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
17+
go install github.com/bufbuild/buf/cmd/buf@latest
18+
```
19+
20+
2. Organize imports:
21+
22+
```sh
23+
goimports -w *.go **/*.go **/**/*.go
24+
```
25+
26+
3. Compile the generated protocol buffer:
27+
28+
```sh
29+
buf mod update proto
30+
buf generate
31+
```
32+
33+
4. Fix go.mod:
34+
35+
```sh
36+
go mod tidy
37+
```
38+
539
## Building from source
640

741
Assuming you have the Go toolchain set up, from the project root you can simply `make all`.
@@ -58,30 +92,3 @@ sql:
5892
migration_path: "" # If you want to execute database migrations on startup
5993
skip_go_mod: false # If true, skip the generation of the go.mod
6094
```
61-
62-
## Post-process
63-
64-
After execute `sqlc generate` you need to compile protocol buffer and fix go.mod.
65-
66-
1. Install the required tools:
67-
68-
```sh
69-
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest
70-
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest
71-
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
72-
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
73-
go install github.com/bufbuild/buf/cmd/buf@latest
74-
```
75-
76-
2. Compile the generated protocol buffer:
77-
78-
```sh
79-
buf mod update proto
80-
buf generate
81-
```
82-
83-
3. Fix go.mod:
84-
85-
```sh
86-
go mod tidy
87-
```

go.mod

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,14 @@ require (
77
github.com/google/go-cmp v0.6.0
88
github.com/jinzhu/inflection v1.0.0
99
github.com/sqlc-dev/plugin-sdk-go v1.23.0
10-
github.com/walterwanderley/sqlc-connect v0.2.3
11-
github.com/walterwanderley/sqlc-grpc v0.18.2
12-
golang.org/x/tools v0.17.0
10+
github.com/walterwanderley/sqlc-connect v0.2.5
11+
github.com/walterwanderley/sqlc-grpc v0.18.3
1312
)
1413

1514
require (
1615
github.com/emicklei/proto v1.13.0 // indirect
1716
github.com/gogo/protobuf v1.3.2 // indirect
1817
github.com/golang/protobuf v1.5.3 // indirect
19-
golang.org/x/mod v0.14.0 // indirect
2018
golang.org/x/net v0.20.0 // indirect
2119
golang.org/x/sys v0.16.0 // indirect
2220
golang.org/x/text v0.14.0 // indirect

go.sum

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,17 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
1616
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
1717
github.com/sqlc-dev/plugin-sdk-go v1.23.0 h1:iSeJhnXPlbDXlbzUEebw/DxsGzE9rdDJArl8Hvt0RMM=
1818
github.com/sqlc-dev/plugin-sdk-go v1.23.0/go.mod h1:I1r4THOfyETD+LI2gogN2LX8wCjwUZrgy/NU4In3llA=
19-
github.com/walterwanderley/sqlc-connect v0.2.3 h1:W1+lOKgSg5TehPceELAilyR0Wf2k2DCiAbqrp7anN18=
20-
github.com/walterwanderley/sqlc-connect v0.2.3/go.mod h1:qId0WvvjEq+hkjn03ma1Q9jXmdBFx3i3CHEvG2IKzC0=
21-
github.com/walterwanderley/sqlc-grpc v0.18.2 h1:lyTdw0To6wjZ0FK1mcbWsozSm1sGckJYnElhtq1Xd90=
22-
github.com/walterwanderley/sqlc-grpc v0.18.2/go.mod h1:bfMjDJUNyUkk3+OM/we8OKDYPVodms+ekOgHvV2hXFY=
19+
github.com/walterwanderley/sqlc-connect v0.2.5 h1:60QcbtAsynbmyIimkRpwouzhcjMMftUq6WC9qSWTvFQ=
20+
github.com/walterwanderley/sqlc-connect v0.2.5/go.mod h1:qId0WvvjEq+hkjn03ma1Q9jXmdBFx3i3CHEvG2IKzC0=
21+
github.com/walterwanderley/sqlc-grpc v0.18.3 h1:cEfURGJQgXpvSdUL23QgEsMjY4Yh/CnfKRhq7nD3HzQ=
22+
github.com/walterwanderley/sqlc-grpc v0.18.3/go.mod h1:bfMjDJUNyUkk3+OM/we8OKDYPVodms+ekOgHvV2hXFY=
2323
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
2424
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
2525
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
2626
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
2727
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
2828
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
2929
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
30-
golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
31-
golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
3230
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
3331
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
3432
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -51,8 +49,6 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm
5149
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
5250
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
5351
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
54-
golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc=
55-
golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps=
5652
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
5753
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
5854
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

internal/server.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
package golang
22

33
import (
4+
"bytes"
5+
"fmt"
6+
"go/format"
7+
"io"
8+
"io/fs"
9+
"log"
410
"sort"
511
"strings"
12+
"text/template"
613

714
"github.com/sqlc-dev/plugin-sdk-go/plugin"
815
"github.com/sqlc-dev/sqlc-gen-go/internal/opts"
@@ -178,3 +185,38 @@ func toServerDefinition(req *plugin.GenerateRequest, options *opts.Options, enum
178185

179186
return &def
180187
}
188+
189+
func execServerTemplate(fs fs.FS, funcs template.FuncMap, name string, data any, goSource bool) ([]byte, error) {
190+
var b bytes.Buffer
191+
192+
f, err := fs.Open(name)
193+
if err != nil {
194+
return nil, err
195+
}
196+
defer f.Close()
197+
tmpl, err := io.ReadAll(f)
198+
if err != nil {
199+
return nil, err
200+
}
201+
202+
t, err := template.New(name).Funcs(funcs).Parse(string(tmpl))
203+
if err != nil {
204+
return nil, err
205+
}
206+
err = t.Execute(&b, data)
207+
if err != nil {
208+
return nil, fmt.Errorf("execute template error: %w", err)
209+
}
210+
211+
var src []byte
212+
if goSource {
213+
src, err = format.Source(b.Bytes())
214+
if err != nil {
215+
log.Println(b.String())
216+
return nil, fmt.Errorf("format source error: %w", err)
217+
}
218+
} else {
219+
src = b.Bytes()
220+
}
221+
return src, nil
222+
}

internal/server_grpc.go

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
11
package golang
22

33
import (
4-
"bytes"
54
"fmt"
6-
"go/format"
7-
"io"
85
"io/fs"
96
"log"
107
"path/filepath"
118
"strings"
12-
"text/template"
139

1410
"github.com/sqlc-dev/plugin-sdk-go/plugin"
1511
"github.com/sqlc-dev/sqlc-gen-go/internal/opts"
1612
"github.com/walterwanderley/sqlc-grpc/converter"
1713
grpctemplates "github.com/walterwanderley/sqlc-grpc/templates"
18-
"golang.org/x/tools/imports"
1914
)
2015

2116
func grpcFiles(req *plugin.GenerateRequest, options *opts.Options, enums []Enum, structs []Struct, queries []Query) ([]*plugin.File, error) {
@@ -110,42 +105,3 @@ func grpcFiles(req *plugin.GenerateRequest, options *opts.Options, enums []Enum,
110105

111106
return files, nil
112107
}
113-
114-
func execServerTemplate(fs fs.FS, funcs template.FuncMap, name string, data any, goSource bool) ([]byte, error) {
115-
var b bytes.Buffer
116-
117-
f, err := fs.Open(name)
118-
if err != nil {
119-
return nil, err
120-
}
121-
defer f.Close()
122-
tmpl, err := io.ReadAll(f)
123-
if err != nil {
124-
return nil, err
125-
}
126-
127-
t, err := template.New(name).Funcs(funcs).Parse(string(tmpl))
128-
if err != nil {
129-
return nil, err
130-
}
131-
err = t.Execute(&b, data)
132-
if err != nil {
133-
return nil, fmt.Errorf("execute template error: %w", err)
134-
}
135-
136-
var src []byte
137-
if goSource {
138-
src, err = format.Source(b.Bytes())
139-
if err != nil {
140-
log.Println(b.String())
141-
return nil, fmt.Errorf("format source error: %w", err)
142-
}
143-
src, err = imports.Process("", src, nil)
144-
if err != nil {
145-
return nil, fmt.Errorf("organize imports error: %w", err)
146-
}
147-
} else {
148-
src = b.Bytes()
149-
}
150-
return src, nil
151-
}

0 commit comments

Comments
 (0)