Files
twenty/packages/twenty-server/src/integrations/message-queue/message-queue.module-factory.ts
Félix Malfait fd06d52a13 Refacto environment service (#4473)
* Refacto environment service

* Remove environment variable type
2024-03-14 11:51:19 +01:00

54 lines
1.4 KiB
TypeScript

import { EnvironmentService } from 'src/integrations/environment/environment.service';
import {
MessageQueueDriverType,
MessageQueueModuleOptions,
} from 'src/integrations/message-queue/interfaces';
/**
* MessageQueue Module factory
* @param environment
* @returns MessageQueueModuleOptions
*/
export const messageQueueModuleFactory = async (
environmentService: EnvironmentService,
): Promise<MessageQueueModuleOptions> => {
const driverType = environmentService.get('MESSAGE_QUEUE_TYPE');
switch (driverType) {
case MessageQueueDriverType.Sync: {
return {
type: MessageQueueDriverType.Sync,
options: {},
};
}
case MessageQueueDriverType.PgBoss: {
const connectionString = environmentService.get('PG_DATABASE_URL');
return {
type: MessageQueueDriverType.PgBoss,
options: {
connectionString,
},
};
}
case MessageQueueDriverType.BullMQ: {
const host = environmentService.get('REDIS_HOST');
const port = environmentService.get('REDIS_PORT');
return {
type: MessageQueueDriverType.BullMQ,
options: {
connection: {
host,
port,
},
},
};
}
default:
throw new Error(
`Invalid message queue driver type (${driverType}), check your .env file`,
);
}
};