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
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);
|
|
};
|
|
});
|
|
}),
|
|
});
|