Commit 332c24ec507b257cdde4806f6fdb5dad3a6fb2bc

Authored by Ábner Oliveira
1 parent b3953cbd

added changes to allow pass string[] or EventsHubKnownEventNames to EventsHubService constructor

src/app/events-hub-known-events.ts
... ... @@ -1,14 +0,0 @@
1   -import { EventsHubKnownEventNames } from './shared/services/events-hub.service';
2   -
3   -export class NoosferoEventsHubKnownEventNames implements EventsHubKnownEventNames {
4   - IMAGE_PROFILE_UPDATED: string = 'IMAGE_PROFILE_UPDATED';
5   - PROFILE_INFO_UPDATED: string = 'IMAGE_PROFILE_UPDATED';
6   - ARTICLE_UPDATED: string = 'ARTICLE_UPDATED';
7   -
8   - constructor() {
9   - }
10   -
11   - getNames() {
12   - return Object.getOwnPropertyNames(this);
13   - }
14   -}
15 0 \ No newline at end of file
src/app/index.ts
... ... @@ -25,10 +25,10 @@ angular.module('noosfero.init', ['noosfero.templates.app', 'noosfero.templates.p
25 25  
26 26  
27 27 import { EVENTS_HUB_KNOW_EVENT_NAMES } from './shared/services/events-hub.service';
28   -import { NoosferoEventsHubKnownEventNames } from './events-hub-known-events';
  28 +import { NoosferoKnownEvents } from './known-events';
29 29  
30 30 bootstrap(MainComponent,
31 31 [
32   - provide(EVENTS_HUB_KNOW_EVENT_NAMES, { useClass: NoosferoEventsHubKnownEventNames })
  32 + provide(EVENTS_HUB_KNOW_EVENT_NAMES, { useClass: NoosferoKnownEvents })
33 33 ]
34 34 );
... ...
src/app/known-events.ts 0 → 100644
... ... @@ -0,0 +1,14 @@
  1 +import { EventsHubKnownEventNames } from './shared/services/events-hub.service';
  2 +
  3 +export class NoosferoKnownEvents implements EventsHubKnownEventNames {
  4 + IMAGE_PROFILE_UPDATED: string = 'IMAGE_PROFILE_UPDATED';
  5 + PROFILE_INFO_UPDATED: string = 'IMAGE_PROFILE_UPDATED';
  6 + ARTICLE_UPDATED: string = 'ARTICLE_UPDATED';
  7 +
  8 + constructor() {
  9 + }
  10 +
  11 + getNames() {
  12 + return Object.getOwnPropertyNames(this);
  13 + }
  14 +}
0 15 \ No newline at end of file
... ...
src/app/shared/services/events-hub.service.ts
... ... @@ -6,6 +6,10 @@ export interface EventsHubKnownEventNames {
6 6 getNames(): string[];
7 7 }
8 8  
  9 +function isEventsHubKnownEventNames(object: any): object is EventsHubKnownEventNames {
  10 + return 'getNames' in object;
  11 +}
  12 +
9 13 @Injectable()
10 14 @Inject(EVENTS_HUB_KNOW_EVENT_NAMES)
11 15 export class EventsHubService {
... ... @@ -13,8 +17,13 @@ export class EventsHubService {
13 17 private emitters: Map<string, EventEmitter<any>>;
14 18 private knownEvents: string[] = [];
15 19  
16   - constructor(private eventsHubKnownEventNames: EventsHubKnownEventNames) {
17   - this.knownEvents = eventsHubKnownEventNames.getNames();
  20 + constructor(private eventsHubKnownEventNames: EventsHubKnownEventNames | string[]) {
  21 + if (isEventsHubKnownEventNames(eventsHubKnownEventNames)) {
  22 + this.knownEvents = eventsHubKnownEventNames.getNames();
  23 + } else if (Array.isArray(eventsHubKnownEventNames)) {
  24 + this.knownEvents = eventsHubKnownEventNames;
  25 + }
  26 +
18 27 this.emitters = new Map<string, EventEmitter<any>>();
19 28 this.setupEmitters();
20 29 }
... ...