From 332c24ec507b257cdde4806f6fdb5dad3a6fb2bc Mon Sep 17 00:00:00 2001 From: Abner Oliveira Date: Thu, 14 Jul 2016 13:22:47 -0300 Subject: [PATCH] added changes to allow pass string[] or EventsHubKnownEventNames to EventsHubService constructor --- src/app/events-hub-known-events.ts | 14 -------------- src/app/index.ts | 4 ++-- src/app/known-events.ts | 14 ++++++++++++++ src/app/shared/services/events-hub.service.ts | 13 +++++++++++-- 4 files changed, 27 insertions(+), 18 deletions(-) delete mode 100644 src/app/events-hub-known-events.ts create mode 100644 src/app/known-events.ts diff --git a/src/app/events-hub-known-events.ts b/src/app/events-hub-known-events.ts deleted file mode 100644 index 0011d2c..0000000 --- a/src/app/events-hub-known-events.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { EventsHubKnownEventNames } from './shared/services/events-hub.service'; - -export class NoosferoEventsHubKnownEventNames implements EventsHubKnownEventNames { - IMAGE_PROFILE_UPDATED: string = 'IMAGE_PROFILE_UPDATED'; - PROFILE_INFO_UPDATED: string = 'IMAGE_PROFILE_UPDATED'; - ARTICLE_UPDATED: string = 'ARTICLE_UPDATED'; - - constructor() { - } - - getNames() { - return Object.getOwnPropertyNames(this); - } -} \ No newline at end of file diff --git a/src/app/index.ts b/src/app/index.ts index e00ec5b..e0a4e94 100644 --- a/src/app/index.ts +++ b/src/app/index.ts @@ -25,10 +25,10 @@ angular.module('noosfero.init', ['noosfero.templates.app', 'noosfero.templates.p import { EVENTS_HUB_KNOW_EVENT_NAMES } from './shared/services/events-hub.service'; -import { NoosferoEventsHubKnownEventNames } from './events-hub-known-events'; +import { NoosferoKnownEvents } from './known-events'; bootstrap(MainComponent, [ - provide(EVENTS_HUB_KNOW_EVENT_NAMES, { useClass: NoosferoEventsHubKnownEventNames }) + provide(EVENTS_HUB_KNOW_EVENT_NAMES, { useClass: NoosferoKnownEvents }) ] ); diff --git a/src/app/known-events.ts b/src/app/known-events.ts new file mode 100644 index 0000000..cb8831e --- /dev/null +++ b/src/app/known-events.ts @@ -0,0 +1,14 @@ +import { EventsHubKnownEventNames } from './shared/services/events-hub.service'; + +export class NoosferoKnownEvents implements EventsHubKnownEventNames { + IMAGE_PROFILE_UPDATED: string = 'IMAGE_PROFILE_UPDATED'; + PROFILE_INFO_UPDATED: string = 'IMAGE_PROFILE_UPDATED'; + ARTICLE_UPDATED: string = 'ARTICLE_UPDATED'; + + constructor() { + } + + getNames() { + return Object.getOwnPropertyNames(this); + } +} \ No newline at end of file diff --git a/src/app/shared/services/events-hub.service.ts b/src/app/shared/services/events-hub.service.ts index c9e9779..f9b1c5c 100644 --- a/src/app/shared/services/events-hub.service.ts +++ b/src/app/shared/services/events-hub.service.ts @@ -6,6 +6,10 @@ export interface EventsHubKnownEventNames { getNames(): string[]; } +function isEventsHubKnownEventNames(object: any): object is EventsHubKnownEventNames { + return 'getNames' in object; +} + @Injectable() @Inject(EVENTS_HUB_KNOW_EVENT_NAMES) export class EventsHubService { @@ -13,8 +17,13 @@ export class EventsHubService { private emitters: Map>; private knownEvents: string[] = []; - constructor(private eventsHubKnownEventNames: EventsHubKnownEventNames) { - this.knownEvents = eventsHubKnownEventNames.getNames(); + constructor(private eventsHubKnownEventNames: EventsHubKnownEventNames | string[]) { + if (isEventsHubKnownEventNames(eventsHubKnownEventNames)) { + this.knownEvents = eventsHubKnownEventNames.getNames(); + } else if (Array.isArray(eventsHubKnownEventNames)) { + this.knownEvents = eventsHubKnownEventNames; + } + this.emitters = new Map>(); this.setupEmitters(); } -- libgit2 0.21.2