github.com/vcilabs/webrpc@v0.5.2-0.20201116131534-162e27b1b33b/gen/javascript/templates/types.js.tmpl (about)

     1  {{define "types"}}
     2  //
     3  // Types
     4  //
     5  {{ if .Messages -}}
     6  {{range .Messages -}}
     7  
     8  {{if .Type | isEnum -}}
     9  {{$enumName := .Name}}
    10  {{exportKeyword}}var {{$enumName}};
    11  (function ({{$enumName}}) {
    12  {{- range $i, $field := .Fields}}
    13    {{$enumName}}["{{$field.Name}}"] = "{{$field.Name}}"
    14  {{- end}}
    15  })({{$enumName}} || ({{$enumName}} = {}))
    16  {{end -}}
    17  
    18  {{- if .Type | isStruct  }}
    19  {{exportKeyword}}class {{.Name}} {
    20    constructor(_data) {
    21      this._data = {}
    22      if (_data) {
    23        {{range .Fields -}}
    24        this._data['{{. | exportedJSONField}}'] = _data['{{. | exportedJSONField}}']
    25        {{end}}
    26      }
    27    }
    28    {{ range .Fields -}}
    29    get {{. | exportedJSONField}}() {
    30      return this._data['{{. | exportedJSONField }}']
    31    }
    32    set {{. | exportedJSONField}}(value) {
    33      this._data['{{. | exportedJSONField}}'] = value
    34    }
    35    {{end}}
    36    toJSON() {
    37      return this._data
    38    }
    39  }
    40  {{end -}}
    41  {{end -}}
    42  {{end -}}
    43  
    44  {{end}}