| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import loggerFactory from '~/utils/logger';
- import { S2sMessagingService } from './base';
- const logger = loggerFactory('growi:service:s2s-messaging:S2sMessagingServiceFactory');
- const envToModuleMappings = {
- redis: 'redis',
- nchan: 'nchan',
- };
- // WIP: Ts.ED code
- //
- // registerProvider({
- // provide: S2sMessagingService,
- // deps: [ConfigManager],
- // useFactory(configManager: ConfigManager) {
- // const type = configManager.getConfig('crowi', 's2sMessagingPubsub:serverType');
- // if (type == null) {
- // logger.info('Config pub/sub server is not defined.');
- // return;
- // }
- // logger.info(`Config pub/sub server type '${type}' is set.`);
- // const module = envToModuleMappings[type];
- // const modulePath = `./${module}`;
- // this.delegator = require(modulePath)(crowi);
- // if (this.delegator == null) {
- // logger.warn('Failed to initialize config pub/sub delegator.');
- // }
- // },
- // })
- /**
- * Instanciate server-to-server messaging service
- */
- class S2sMessagingServiceFactory {
- delegator!: S2sMessagingService;
- initializeDelegator(crowi) {
- const type = crowi.configManager.getConfig('crowi', 's2sMessagingPubsub:serverType');
- if (type == null) {
- logger.info('Config pub/sub server is not defined.');
- return;
- }
- logger.info(`Config pub/sub server type '${type}' is set.`);
- const module = envToModuleMappings[type];
- const modulePath = `./${module}`;
- // eslint-disable-next-line @typescript-eslint/no-var-requires
- this.delegator = require(modulePath)(crowi);
- if (this.delegator == null) {
- logger.warn('Failed to initialize config pub/sub delegator.');
- }
- }
- getDelegator(crowi) {
- if (this.delegator == null) {
- this.initializeDelegator(crowi);
- }
- return this.delegator;
- }
- }
- const factory = new S2sMessagingServiceFactory();
- module.exports = (crowi) => {
- return factory.getDelegator(crowi);
- };
|