You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TestBackend.ts 968B

123456789101112131415161718192021222324252627282930313233343536
  1. import { Server } from '../src/Backend'
  2. import { SubscriptionResponse } from '../src/Responses'
  3. let subcallback
  4. new Server(20000, [{
  5. name: "HelloWorldRPCGroup",
  6. exportRPCs: () => [{
  7. type: 'Call',
  8. name: 'echo',
  9. call: async (s:string) => s,
  10. },
  11. {
  12. type: 'Hook',
  13. name: 'subscribe',
  14. hook: async (callback):Promise<any> => {
  15. subcallback = callback
  16. return new SubscriptionResponse(""+Math.random())
  17. },
  18. unhook: async (uid):Promise<any> => { subcallback = null }
  19. },
  20. function add(...args:number[]):number {return args.reduce((a,b)=>a+b, 0)},
  21. function triggerCallback(message):number {return subcallback(message)},
  22. ]
  23. }])
  24. try{
  25. new Server(20001, [{
  26. name: "bad",
  27. exportRPCs: () => [
  28. (aaa,bbb,ccc) => { return aaa+bbb+ccc }
  29. ]
  30. }])
  31. }catch(badRPCError){
  32. console.log("expected bad-RPC error happened: "+ !!badRPCError)
  33. }