@engervall/shared
Advanced tools
Comparing version 1.0.27 to 1.0.28
@@ -7,4 +7,20 @@ "use strict"; | ||
if (error instanceof Error) { | ||
let errorMessage = error.message; | ||
if ('errorMessage' in error && | ||
typeof error.errorMessage === 'string' && | ||
error.errorMessage.length > 0) { | ||
errorMessage = error.errorMessage; | ||
} | ||
else if ('externalErrorMessage' in error && | ||
typeof error.externalErrorMessage === 'string' && | ||
error.externalErrorMessage.length > 0) { | ||
errorMessage = error.externalErrorMessage; | ||
} | ||
else if ('internalErrorMessage' in error && | ||
typeof error.internalErrorMessage === 'string' && | ||
error.internalErrorMessage.length > 0) { | ||
errorMessage = error.internalErrorMessage; | ||
} | ||
return { | ||
errorMessage: error.message, | ||
errorMessage, | ||
errorName: error.name, | ||
@@ -11,0 +27,0 @@ errorStack: error.stack, |
@@ -26,2 +26,50 @@ "use strict"; | ||
}); | ||
it('should handle custom error with "errorMessage" property', () => { | ||
class ErrorWithErrorMessage extends Error { | ||
constructor(message) { | ||
super(); | ||
this.errorMessage = message; | ||
} | ||
} | ||
const errorMessage = 'potato with message'; | ||
const error = new ErrorWithErrorMessage(errorMessage); | ||
const result = (0, extract_error_details_1.extractErrorDetails)(error); | ||
expect(result).toEqual({ | ||
errorName: 'Error', | ||
errorMessage: errorMessage, | ||
errorStack: error.stack, | ||
}); | ||
}); | ||
it('should handle custom error with "internalErrorMessage" property', () => { | ||
class ErrorWithInternalErrorMessage extends Error { | ||
constructor(message) { | ||
super(); | ||
this.internalErrorMessage = message; | ||
} | ||
} | ||
const errorMessage = 'potato with internal message'; | ||
const error = new ErrorWithInternalErrorMessage(errorMessage); | ||
const result = (0, extract_error_details_1.extractErrorDetails)(error); | ||
expect(result).toEqual({ | ||
errorName: 'Error', | ||
errorMessage: errorMessage, | ||
errorStack: error.stack, | ||
}); | ||
}); | ||
it('should handle custom error with "externalErrorMessage" property', () => { | ||
class ErrorWithExternalErrorMessage extends Error { | ||
constructor(message) { | ||
super(); | ||
this.externalErrorMessage = message; | ||
} | ||
} | ||
const errorMessage = 'potato with external message'; | ||
const error = new ErrorWithExternalErrorMessage(errorMessage); | ||
const result = (0, extract_error_details_1.extractErrorDetails)(error); | ||
expect(result).toEqual({ | ||
errorName: 'Error', | ||
errorMessage: errorMessage, | ||
errorStack: error.stack, | ||
}); | ||
}); | ||
}); | ||
@@ -28,0 +76,0 @@ describe('unknown errors', () => { |
{ | ||
"name": "@engervall/shared", | ||
"version": "1.0.27", | ||
"version": "1.0.28", | ||
"main": "dist/index.js", | ||
@@ -27,3 +27,3 @@ "repository": "git@github.com:erikengervall/gigalib.git", | ||
}, | ||
"gitHead": "a4723493401bd127ebbd64189d14457a9bca0fd2" | ||
"gitHead": "9aa6ab484c15f4047d7e87bd0298f3f6e365893d" | ||
} |
@@ -5,5 +5,5 @@ export const ONE_MINUTE_IN_SECONDS = 60; | ||
export const ONE_SECOND_IN_MS = 1000; | ||
export const ONE_SECOND_IN_MS = 1_000; | ||
export const ONE_MINUTE_IN_MS = ONE_SECOND_IN_MS * 60; | ||
export const ONE_HOUR_IN_MS = ONE_MINUTE_IN_MS * 60; | ||
export const ONE_DAY_IN_MS = ONE_HOUR_IN_MS * 24; |
@@ -29,2 +29,62 @@ import { extractErrorDetails } from './extract-error-details'; | ||
}); | ||
it('should handle custom error with "errorMessage" property', () => { | ||
class ErrorWithErrorMessage extends Error { | ||
errorMessage: string; | ||
constructor(message: string) { | ||
super(); | ||
this.errorMessage = message; | ||
} | ||
} | ||
const errorMessage = 'potato with message'; | ||
const error = new ErrorWithErrorMessage(errorMessage); | ||
const result = extractErrorDetails(error); | ||
expect(result).toEqual({ | ||
errorName: 'Error', | ||
errorMessage: errorMessage, | ||
errorStack: error.stack, | ||
}); | ||
}); | ||
it('should handle custom error with "internalErrorMessage" property', () => { | ||
class ErrorWithInternalErrorMessage extends Error { | ||
internalErrorMessage: string; | ||
constructor(message: string) { | ||
super(); | ||
this.internalErrorMessage = message; | ||
} | ||
} | ||
const errorMessage = 'potato with internal message'; | ||
const error = new ErrorWithInternalErrorMessage(errorMessage); | ||
const result = extractErrorDetails(error); | ||
expect(result).toEqual({ | ||
errorName: 'Error', | ||
errorMessage: errorMessage, | ||
errorStack: error.stack, | ||
}); | ||
}); | ||
it('should handle custom error with "externalErrorMessage" property', () => { | ||
class ErrorWithExternalErrorMessage extends Error { | ||
externalErrorMessage: string; | ||
constructor(message: string) { | ||
super(); | ||
this.externalErrorMessage = message; | ||
} | ||
} | ||
const errorMessage = 'potato with external message'; | ||
const error = new ErrorWithExternalErrorMessage(errorMessage); | ||
const result = extractErrorDetails(error); | ||
expect(result).toEqual({ | ||
errorName: 'Error', | ||
errorMessage: errorMessage, | ||
errorStack: error.stack, | ||
}); | ||
}); | ||
}); | ||
@@ -31,0 +91,0 @@ |
@@ -11,4 +11,26 @@ type ErrorDetails = { | ||
if (error instanceof Error) { | ||
let errorMessage = error.message; | ||
if ( | ||
'errorMessage' in error && | ||
typeof error.errorMessage === 'string' && | ||
error.errorMessage.length > 0 | ||
) { | ||
errorMessage = error.errorMessage; | ||
} else if ( | ||
'externalErrorMessage' in error && | ||
typeof error.externalErrorMessage === 'string' && | ||
error.externalErrorMessage.length > 0 | ||
) { | ||
errorMessage = error.externalErrorMessage; | ||
} else if ( | ||
'internalErrorMessage' in error && | ||
typeof error.internalErrorMessage === 'string' && | ||
error.internalErrorMessage.length > 0 | ||
) { | ||
errorMessage = error.internalErrorMessage; | ||
} | ||
return { | ||
errorMessage: error.message, | ||
errorMessage, | ||
errorName: error.name, | ||
@@ -15,0 +37,0 @@ errorStack: error.stack, |
370748
8254