31 lines
577 B
TypeScript
31 lines
577 B
TypeScript
import {ChildIPC} from 'kitten-ipc';
|
|
import GoIpcApi from './remote.js';
|
|
|
|
/**
|
|
* @kittenipc api
|
|
*/
|
|
class TsIpcApi {
|
|
Div(a: number, b: number): number {
|
|
if (b === 0) {
|
|
throw new Error('zero division');
|
|
}
|
|
return a / b;
|
|
}
|
|
}
|
|
|
|
async function main() {
|
|
const localApi = new TsIpcApi();
|
|
const ipc = new ChildIPC(localApi);
|
|
const remoteApi = new GoIpcApi(ipc);
|
|
|
|
await ipc.start();
|
|
|
|
console.log(`remote call result = ${await remoteApi.Div(10, 2)}`);
|
|
|
|
await ipc.wait();
|
|
}
|
|
|
|
main().catch(e => {
|
|
console.trace(e);
|
|
});
|