diff --git a/.npmignore b/.npmignore index dec3dd2..89d55f4 100644 --- a/.npmignore +++ b/.npmignore @@ -1,10 +1,6 @@ -.* - -jest-e2e.json - -tsconfig.build-test.json -tsconfig.build.json -tsconfig.json - -node_modules -src +* +!dist/**/* +!asyncapi/**/* +!types/**/* +!pacakge.json +!*.md diff --git a/package-lock.json b/package-lock.json index 67eaf92..7c865d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@globalid/iris-node", - "version": "1.0.0", + "version": "1.1.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@globalid/iris-node", - "version": "1.0.0", + "version": "1.1.5", "license": "ISC", "dependencies": { "lodash": "^4.17.21", diff --git a/package.json b/package.json index f232992..cae7d00 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@globalid/iris-node", - "version": "1.0.0", + "version": "1.1.5", "description": "", "main": "dist/index", "types": "dist/index.d.ts", diff --git a/src/lib/consume.handle.ts b/src/lib/consume.handle.ts index 4cb318c..c00d1bd 100644 --- a/src/lib/consume.handle.ts +++ b/src/lib/consume.handle.ts @@ -8,6 +8,7 @@ import * as errors from './errors' import * as amqpHelper from './amqp.helper' import * as consumeAck from './consume.ack' import * as consumeError from './consume.error' +import * as _ from 'lodash' const logger = getLogger('Iris:ConsumerHandle') @@ -37,7 +38,7 @@ export function getMessageHandler({ resolveMessageHandler, obtainChannel, queueN queueName, message: msg.content.toString(), fields: msg.fields, - headers: amqpHelper.safeAmqpObjectForLogging(msg.properties.headers), + headers: amqpHelper.safeAmqpObjectForLogging(msg.properties.headers) ?? '', }) if (consumeAck.ignoreMsg(msg, ch)) { @@ -46,6 +47,11 @@ export function getMessageHandler({ resolveMessageHandler, obtainChannel, queueN return } + if (_.isNil(msg.properties.headers)) { + logger.warn('Received message with no headers. Assigning empty object.') + msg.properties.headers = {} + } + const handler = resolveMessageHandler(msg) try { diff --git a/src/lib/errors.ts b/src/lib/errors.ts index 533a268..c03c7c0 100644 --- a/src/lib/errors.ts +++ b/src/lib/errors.ts @@ -102,6 +102,8 @@ export function enhancedDetails(details: T, error: Error): T { let detailsEnhanced = { ...details } if (error instanceof InvalidObjectConverionError) { detailsEnhanced = { ...detailsEnhanced, validation: error.validationErrors } + } else if (error instanceof Error) { + detailsEnhanced = { ...details, err: JSON.stringify(error, Object.getOwnPropertyNames(error)) } } else { detailsEnhanced = { ...details, err: error } }