kittenipc/kitcom/ts/ts_gen.tmpl
2025-10-26 14:08:51 +03:00

26 lines
858 B
Cheetah

// Code generated by kitcom. DO NOT EDIT.
import {ParentIPC, ChildIPC} from 'kitten-ipc';
{{- /*gotype: efprojects.com/kitten-ipc/kitcom/ts.tsGenData*/ -}}
{{range $e := .Api.Endpoints}}
export default class {{$e.Name}} {
private ipc: ParentIPC | ChildIPC;
constructor(ipc: ParentIPC | ChildIPC) {
this.ipc = ipc;
}
{{range $mtd := $e.Methods}}
async {{ $mtd.Name }}(
{{ range $par := $mtd.Params }}{{$par.Name}}: {{$par.Type | typedef }}, {{end}}
): Promise<{{if len $mtd.Ret}}{{(index $mtd.Ret 0).Type | typedef }}{{else}}void{{end}}> {
const results = await this.ipc.call('{{$e.Name}}.{{$mtd.Name}}',
{{range $par := $mtd.Params}}{{$par.Name}}, {{end}}
);
return {{range $i, $ret := $mtd.Ret}}{{if $i}}, {{end}}results[{{$i}}] as {{$ret.Type | typedef}}{{end}}
}
{{end}}
}
{{end}}