angular-scope-event-emitter.ts 674 B

12345678910111213141516171819202122
  1. import {
  2. ScopeEventEmitter,
  3. ScopeEventName,
  4. } from '../../../../../types/ide/scope-event-emitter'
  5. import { Scope } from '../../../../../types/angular/scope'
  6. export class AngularScopeEventEmitter implements ScopeEventEmitter {
  7. // eslint-disable-next-line no-useless-constructor
  8. constructor(readonly $scope: Scope) {}
  9. emit(eventName: ScopeEventName, broadcast: boolean, ...detail: unknown[]) {
  10. if (broadcast) {
  11. this.$scope.$broadcast(eventName, ...detail)
  12. } else {
  13. this.$scope.$emit(eventName, ...detail)
  14. }
  15. }
  16. on(eventName: ScopeEventName, listener: (...args: unknown[]) => void) {
  17. return this.$scope.$on(eventName, listener)
  18. }
  19. }