github.com/vcilabs/webrpc@v0.5.2-0.20201116131534-162e27b1b33b/_examples/sample-file-generation-with-goschema/contract.go (about) 1 package test 2 3 //go:generate webrpc-gen -schema=contract.go -target=ts -client -server -out ./typescript.gen.ts 4 //go:generate webrpc-gen -schema=contract.go -target=go -client -server -pkg=main -out ./golang.gen.go 5 //go:generate webrpc-gen -schema=contract.go -target=js -client -server -extra=noexports -out ./javascript.gen.js 6 7 import ( 8 "context" 9 "regexp" 10 11 "github.com/vcilabs/hubs/data/presenter" 12 ) 13 14 type BookID int64 15 16 type Empty struct { 17 } 18 19 type Author struct { 20 ID int64 21 Name string 22 Metadata map[string]interface{} 23 } 24 25 type Book struct { 26 ID BookID 27 Name string 28 Authors []Author 29 } 30 31 type Library interface { 32 GetBooks(ctx context.Context) ([]*Book, string, error) 33 BorrowBook(ctx context.Context, BookID int64) error 34 GetBookAuthor(ctx context.Context, BookID int64) (Author, map[string]interface{}, regexp.Regexp, error) 35 GetFile(ctx context.Context, id int64) (presenter.File, error) 36 }