@goparrot/pubsub-event-bus
Version:
NestJS EventBus extension for RabbitMQ PubSub
29 lines • 1.12 kB
JavaScript
import snakeCase from 'lodash/snakeCase';
import startCase from 'lodash/startCase';
import last from 'lodash/last';
import { ORIGIN_EXCHANGE_HEADER } from './retry-constants';
export function toEventName(className) {
return snakeCase(className.replace(/Event$/, '')).replace(/_/gi, '.');
}
export function toEventClassName(event) {
return event.split('.').map(startCase).join('');
}
export function toSnakeCase(className) {
if (typeof className === 'object') {
className = className.constructor.name;
}
return snakeCase(className.toString().replace(/Handler$/, ''));
}
export function calculateDelay(delay, retryCount) {
return typeof delay === 'function' ? delay(retryCount) : delay;
}
export function generateQueuePrefixFromPackageName() {
return last(process.env.npm_package_name?.split('/'))?.replace(/[_-]/gi, '.');
}
export function getMessageExchange(message) {
return message.properties.headers?.[ORIGIN_EXCHANGE_HEADER] ?? message.fields.exchange;
}
export function appInTestingMode() {
return process.env.NODE_ENV === 'test';
}
//# sourceMappingURL=helpers.js.map