@goparrot/pubsub-event-bus
Version:
NestJS EventBus extension for RabbitMQ PubSub
42 lines • 2.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.appInTestingMode = exports.getMessageExchange = exports.generateQueuePrefixFromPackageName = exports.calculateDelay = exports.toSnakeCase = exports.toEventClassName = exports.toEventName = void 0;
const tslib_1 = require("tslib");
const snakeCase_1 = tslib_1.__importDefault(require("lodash/snakeCase"));
const startCase_1 = tslib_1.__importDefault(require("lodash/startCase"));
const last_1 = tslib_1.__importDefault(require("lodash/last"));
const retry_constants_1 = require("./retry-constants");
function toEventName(className) {
return (0, snakeCase_1.default)(className.replace(/Event$/, '')).replace(/_/gi, '.');
}
exports.toEventName = toEventName;
function toEventClassName(event) {
return event.split('.').map(startCase_1.default).join('');
}
exports.toEventClassName = toEventClassName;
function toSnakeCase(className) {
if (typeof className === 'object') {
className = className.constructor.name;
}
return (0, snakeCase_1.default)(className.toString().replace(/Handler$/, ''));
}
exports.toSnakeCase = toSnakeCase;
function calculateDelay(delay, retryCount) {
return typeof delay === 'function' ? delay(retryCount) : delay;
}
exports.calculateDelay = calculateDelay;
function generateQueuePrefixFromPackageName() {
var _a, _b;
return (_b = (0, last_1.default)((_a = process.env.npm_package_name) === null || _a === void 0 ? void 0 : _a.split('/'))) === null || _b === void 0 ? void 0 : _b.replace(/[_-]/gi, '.');
}
exports.generateQueuePrefixFromPackageName = generateQueuePrefixFromPackageName;
function getMessageExchange(message) {
var _a, _b;
return (_b = (_a = message.properties.headers) === null || _a === void 0 ? void 0 : _a[retry_constants_1.ORIGIN_EXCHANGE_HEADER]) !== null && _b !== void 0 ? _b : message.fields.exchange;
}
exports.getMessageExchange = getMessageExchange;
function appInTestingMode() {
return process.env.NODE_ENV === 'test';
}
exports.appInTestingMode = appInTestingMode;
//# sourceMappingURL=helpers.js.map