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.
 
 
 
 
 

38 lines
924 B

import { router, publicProcedure } from '../trpc';
import { observable } from '@trpc/server/observable';
import { EventEmitter } from 'events';
import { WindowManager } from 'main/modules/window-manager';
const ee = new EventEmitter();
export const userRouter = router({
userList: publicProcedure.query(() => {
// [..]
ee.emit('greeting', `Greeted`)
return [
{
id: 1,
name: 'John Doe',
windowsLength: WindowManager.getWindowsLength(),
},
{
id: 2,
name: 'Jane Doe',
windowsLength: WindowManager.getWindowsLength(),
},
];
}),
subscribeGreeting: publicProcedure.subscription(() => {
return observable<{ text: string }>((emit) => {
function onGreet(text: string) {
emit.next({ text });
}
ee.on('greeting', onGreet);
return () => {
ee.off('greeting', onGreet);
};
});
}),
});