{{$module := .}} {{- $runtime := $module.Runtime}} {{- $models := (fixext $module.ModelsFile)}} {{- $useNames := $module.UseNames}} {{- $useInterfaces := $module.UseInterfaces}} {{- $imports := $module.Imports}} {{- with .Service -}} // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT {{if or (hasdoc .Decl.Doc) (hasdoc .Doc)}} /** {{- if hasdoc .Decl.Doc}} {{- jsdoc .Decl.Doc.Text ""}}{{if hasdoc .Doc}} *{{end}} {{- end}} {{- if hasdoc .Doc}} {{- jsdoc .Doc.Text ""}} {{- end}} * @module */ {{end}} // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports import {Call as $Call{{if not $useInterfaces}}, Create as $Create{{end -}} } from "{{js $runtime}}"; {{range $imports.External}} // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports import * as {{jsimport .}} from "{{js .RelPath}}/{{js $models}}"; {{- end}}{{if $imports.External}} {{end}} {{- if $imports.ImportModels}} // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: Unused imports import * as $models from "./{{js $models}}"; {{end}} {{- range .Methods}} {{- if or (hasdoc .Decl.Doc) (hasdoc .Doc)}} /** {{- if hasdoc .Decl.Doc}} {{- jsdoc .Decl.Doc.Text ""}}{{if hasdoc .Doc}} *{{end}} {{- end}} {{- if .Doc}} {{- jsdoc .Doc.Text ""}} {{- end}} */ {{- end}} {{if not .Internal}}export {{end}}function {{.Name}}({{range $i, $param := .Params -}} {{- if gt $i 0}}, {{end}} {{- if .Variadic}}...{{end}} {{- jsparam $i .}}: {{$module.JSType .Type}}{{if .Variadic}}[]{{end}} {{- end}}): Promise< {{- if eq 0 (len .Results) -}} void {{- else if eq 1 (len .Results)}} {{- $module.JSType (index .Results 0)}} {{- else -}} [{{range $i, $result := .Results}} {{- if gt $i 0}}, {{end}} {{- $module.JSType $result}} {{- end}}] {{- end}}> & { cancel(): void } { {{- if $useNames}} let $resultPromise = $Call.ByName("{{js .FQN}}" {{- else}} let $resultPromise = $Call.ByID({{.ID}} {{- end}}{{range $i, $param := .Params}}, {{jsparam $i .}}{{end}}) as any; {{- if or $useInterfaces (not .Results) ($module.SkipCreate .Results)}} return $resultPromise; {{- else}} let $typingPromise = $resultPromise.then(($result: any) => { {{- if eq 1 (len .Results)}} return {{$module.JSCreate (index .Results 0)}}($result); {{- else}} {{- range $i, $type := .Results}} {{- $create := ($module.JSCreate $type)}} {{- if ne $create "$Create.Any"}} $result[{{$i}}] = {{$create}}($result[{{$i}}]); {{- end}}{{end}} return $result; {{- end}} }) as any; $typingPromise.cancel = $resultPromise.cancel.bind($resultPromise); return $typingPromise; {{- end}} } {{end}} {{- $postponed := $module.PostponedCreates}} {{- if $postponed}} // Private type creation functions {{- range $i, $create := $postponed}} {{if and (ge (len $create) 16) (eq (slice $create 1 16) "function $$init")}}var {{else}}const {{end -}} $$createType{{$i}} = {{$create}}; {{- end}} {{end}} {{- range .Injections}} {{.}} {{- end}}{{if .Injections}} {{end}}{{end -}}