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}}