@fsms/angular-pubsub
Version:
Angular 11.x implementation of the [publish subscribe](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) Pattern.
22 lines • 2.79 kB
JavaScript
import { Inject, NgModule } from '@angular/core';
import { PubsubService } from './pubsub.service';
import { subscribePubsubs } from './pubsub-resolver';
import { PubsubSources } from './pubsub-sources';
import { ROOT_PUBSUBS } from './tokens';
export const ROOT_PUBSUB_INIT = '@fsms/pubsub/init';
export class PubsubRootModule {
constructor(pubsubService, sources, rootPubsubs) {
sources.addPubsubs(rootPubsubs);
subscribePubsubs(sources.getAllPubsubInstances(), pubsubService);
pubsubService.publish({ messageType: ROOT_PUBSUB_INIT });
}
}
PubsubRootModule.decorators = [
{ type: NgModule, args: [{},] }
];
PubsubRootModule.ctorParameters = () => [
{ type: PubsubService },
{ type: PubsubSources },
{ type: Array, decorators: [{ type: Inject, args: [ROOT_PUBSUBS,] }] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVic3ViLXJvb3QtbW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3ZzdHMvd29yay8xL3MvcHJvamVjdHMvZnNtcy1hbmd1bGFyLXB1YnN1Yi9zcmMvIiwic291cmNlcyI6WyJsaWIvcHVic3ViLXJvb3QtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztBQUdwRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ0UsYUFBNEIsRUFDNUIsT0FBc0IsRUFDQSxXQUFrQjtRQUV4QyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7OztZQVZGLFFBQVEsU0FBQyxFQUFFOzs7WUFQSCxhQUFhO1lBRWIsYUFBYTt3Q0FVakIsTUFBTSxTQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQdWJzdWJTZXJ2aWNlIH0gZnJvbSAnLi9wdWJzdWIuc2VydmljZSc7XG5pbXBvcnQgeyBzdWJzY3JpYmVQdWJzdWJzIH0gZnJvbSAnLi9wdWJzdWItcmVzb2x2ZXInO1xuaW1wb3J0IHsgUHVic3ViU291cmNlcyB9IGZyb20gJy4vcHVic3ViLXNvdXJjZXMnO1xuaW1wb3J0IHsgUk9PVF9QVUJTVUJTIH0gZnJvbSAnLi90b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgUk9PVF9QVUJTVUJfSU5JVCA9ICdAZnNtcy9wdWJzdWIvaW5pdCc7XG5cbkBOZ01vZHVsZSh7fSlcbmV4cG9ydCBjbGFzcyBQdWJzdWJSb290TW9kdWxlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVic3ViU2VydmljZTogUHVic3ViU2VydmljZSxcbiAgICBzb3VyY2VzOiBQdWJzdWJTb3VyY2VzLFxuICAgIEBJbmplY3QoUk9PVF9QVUJTVUJTKSByb290UHVic3ViczogYW55W11cbiAgKSB7XG4gICAgc291cmNlcy5hZGRQdWJzdWJzKHJvb3RQdWJzdWJzKTtcbiAgICBzdWJzY3JpYmVQdWJzdWJzKHNvdXJjZXMuZ2V0QWxsUHVic3ViSW5zdGFuY2VzKCksIHB1YnN1YlNlcnZpY2UpO1xuICAgIHB1YnN1YlNlcnZpY2UucHVibGlzaCh7IG1lc3NhZ2VUeXBlOiBST09UX1BVQlNVQl9JTklUIH0pO1xuICB9XG59XG4iXX0=