Support List / Message types

This commit is contained in:
Mathieu Acthernoene
2017-01-11 16:33:03 +01:00
parent 0ce8ebe54b
commit 4149bd5c25
3 changed files with 113 additions and 79 deletions

View File

@@ -10,10 +10,27 @@ import {{$Package}}_pb from './{{$Package}}_pb'
import {{. | replace "/" "_" | trimSuffix ".proto" }}_pb from '../{{. | trimSuffix ".proto" }}_pb'
{{- end}}
{{- define "fieldMethods"}}
{{- if isFieldRepeated .}}
get{{.Name | camelCase}}List?: () => {{. | jsType}};
set{{.Name | camelCase}}List?: ({{.Name}}: {{. | jsType}}) => void;
add{{.Name | camelCase}}?: ({{.Name}}: {{. | jsType | trimPrefix "Array<" | trimSuffix ">"}}) => void;
clear{{.Name | camelCase}}List?: () => void;
{{- else}}
get{{.Name | camelCase}}?: () => {{. | jsType}};
set{{.Name | camelCase}}?: ({{.Name}}: {{. | jsType}}) => void;
{{- if isFieldMessage .}}
clear{{.Name | camelCase}}?: () => void;
has{{.Name | camelCase}}?: () => boolean;
{{- end}}
{{- end}}
{{- end}}
{{range .File.EnumType}}
export type {{.Name}} = {|
{{- range .Value}}
{{.Name}}: {{.Number}};
{{.Name}}?: {{.Number}};
{{- end}}
|};
{{- end}}
@@ -24,7 +41,7 @@ export type {{.Name}} = {|
{{range .EnumType}}
export type {{$MessageType}}${{.Name}} = {|
{{- range .Value}}
{{.Name}}: {{.Number}};
{{.Name}}?: {{.Number}};
{{- end}}
|};
{{- end}}
@@ -32,16 +49,14 @@ export type {{$MessageType}}${{.Name}} = {|
{{range .NestedType}}
export type {{$MessageType}}${{.Name}} = {
{{- range .Field}}
{{.Name | getter}}: () => {{. | jsType}};
{{.Name | setter}}: ({{.Name}}: {{. | jsType}}) => void;
{{- template "fieldMethods" .}}
{{- end}}
};
{{- end}}
export type {{.Name}} = {
{{- range .Field}}
{{.Name | getter}}: () => {{. | jsType}};
{{.Name | setter}}: ({{.Name}}: {{. | jsType}}) => void;
{{- template "fieldMethods" .}}
{{- end}}
};