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  }