create-ide-event-emitter.ts 863 B

1234567891011121314151617181920212223
  1. import { Emitter } from 'strict-event-emitter'
  2. import { Project } from '../../../../types/project'
  3. import { PermissionsLevel } from '@/features/ide-react/types/permissions-level'
  4. import { GotoLineOptions } from '@/features/ide-react/types/goto-line-options'
  5. import { CursorPosition } from '@/features/ide-react/types/cursor-position'
  6. export type IdeEvents = {
  7. 'project:joined': [{ project: Project; permissionsLevel: PermissionsLevel }]
  8. 'editor:gotoOffset': [gotoOffset: number]
  9. 'editor:gotoLine': [options: GotoLineOptions]
  10. 'outline-toggled': [isOpen: boolean]
  11. 'cursor:editor:update': [position: CursorPosition]
  12. 'cursor:editor:syncToPdf': []
  13. 'scroll:editor:update': []
  14. 'comment:start_adding': []
  15. }
  16. export type IdeEventEmitter = Emitter<IdeEvents>
  17. export function createIdeEventEmitter(): IdeEventEmitter {
  18. return new Emitter<IdeEvents>()
  19. }