github.com/vcilabs/webrpc@v0.5.2-0.20201116131534-162e27b1b33b/gen/typescript/templates/types.ts.tmpl (about) 1 {{define "types"}} 2 // 3 // Types 4 // 5 6 {{- if .Messages -}} 7 {{range .Messages -}} 8 9 {{if .Type | isAdvancedType}} 10 type {{.Name}} = {{.EnumType}}; 11 {{- end}} 12 13 {{if .Type | isEnum -}} 14 {{$enumName := .Name}} 15 export enum {{$enumName}} { 16 {{- range $i, $field := .Fields}} 17 {{- if $i}},{{end}} 18 {{$field.Name}} = '{{$field.Name}}' 19 {{- end}} 20 } 21 {{end -}} 22 23 {{- if .Type | isStruct }} 24 export interface {{.Name | interfaceName}} { 25 {{- range .Fields}} 26 {{if . | exportableField -}}{{. | exportedJSONField}}{{if .Optional}}?{{end}}: {{.Type | fieldType}}{{- end -}} 27 {{- end}} 28 } 29 {{end -}} 30 {{end -}} 31 {{end -}} 32 33 {{if .Services}} 34 {{- range .Services}} 35 export interface {{.Name | serviceInterfaceName}} { 36 {{- range .Methods}} 37 {{.Name | methodName}}({{. | methodInputs}}): {{. | methodOutputs}} 38 {{- end}} 39 } 40 41 {{range .Methods -}} 42 export interface {{. | methodArgumentInputInterfaceName}} { 43 {{- range .Inputs}} 44 {{.Name}}{{if .Optional}}?{{end}}: {{.Type | fieldType}} 45 {{- end}} 46 } 47 48 export interface {{. | methodArgumentOutputInterfaceName}} { 49 {{- range .Outputs}} 50 {{.Name}}{{if .Optional}}?{{end}}: {{.Type | fieldType}} 51 {{- end}} 52 } 53 {{end}} 54 55 {{- end}} 56 {{end -}} 57 {{end}}