All files response.utilities.ts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 311x   1x         1x       4x 4x 4x 3x   3x           1x 1x              
import { log } from './log.utilities';
 
const headers = {
  'Access-Control-Allow-Origin': '*',
  'Access-Control-Allow-Credentials': true,
};
 
export const createResponse = async <T>(
  promise: Promise<T>,
  options?: { successCode?: number },
) => {
  const successCode = (options && options.successCode) || 200;
  try {
    const result = await promise;
    log.info({ result }, 'Result received');
 
    return {
      statusCode: successCode,
      body: JSON.stringify(result || {}),
      headers,
    };
  } catch (err) {
    log.error({ err }, 'Request implementation failed');
    return {
      statusCode: 500,
      body: JSON.stringify({ name: 'FAILED', message: err.message }),
      headers,
    };
  }
};