post-ephemeral-errors.ts 977 B

12345678910111213141516171819202122232425262728293031323334
  1. import { WebAPICallResult } from '@slack/web-api';
  2. import { markdownSectionBlock } from './block-kit-builder';
  3. import { respond } from './response-url';
  4. export const respondRejectedErrors = async(
  5. rejectedResults: PromiseRejectedResult[],
  6. responseUrl: string,
  7. ): Promise<WebAPICallResult|void> => {
  8. if (rejectedResults.length > 0) {
  9. await respond(responseUrl, {
  10. text: 'Error occured.',
  11. blocks: [
  12. markdownSectionBlock('*Error occured:*'),
  13. ...rejectedResults.map((rejectedResult) => {
  14. const reason = rejectedResult.reason.toString();
  15. const resData = rejectedResult.reason.response?.data;
  16. const resDataMessage = resData?.message || resData?.toString();
  17. let errorMessage = reason;
  18. if (resDataMessage != null) {
  19. errorMessage += `\n Cause: ${resDataMessage}`;
  20. }
  21. return markdownSectionBlock(errorMessage);
  22. }),
  23. ],
  24. });
  25. }
  26. return;
  27. };