2025-10-21 10:50:42 +03:00

48 lines
682 B
Go

package main
import (
"fmt"
"log"
"os"
"os/exec"
"path"
kittenipc "efprojects.com/kitten-ipc"
)
// kittenipc:api
type IpcApi struct {
}
func (api IpcApi) Div(a int, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("zero division")
}
return a / b, nil
}
func main() {
cwd, err := os.Getwd()
if err != nil {
log.Panic(err)
}
api := IpcApi{}
cmdStr := fmt.Sprintf("node %s", path.Join(cwd, "..", "ts/index.js"))
cmd := exec.Command(cmdStr)
kit, err := kittenipc.New(cmd, &api, kittenipc.Config{})
if err != nil {
log.Panic(err)
}
if err := kit.Start(); err != nil {
log.Panic(err)
}
if err := kit.Wait(); err != nil {
log.Panic(err)
}
}