// import { client, v2 } from '@datadog/datadog-api-client' import { CreateLogProps } from './types' /* example: createLog({ functionName: 'NameSpace_FunctionName_1_0_0', log: any, body, shortDescription: '', type: 'info' | 'debug' | 'warning' | 'error' | 'critical', }) */ export const createLog = async (props: CreateLogProps) => { const { type, functionName: fullFunctionName, log } = props const functionNameArray = fullFunctionName.replace(/_/g, ' ').replace(/(\d+)_(\d+)_(\d+)/, '').split(' ') const namespace = functionNameArray[0] const functionNameString = functionNameArray[1] const version = `${functionNameArray[2]}.${functionNameArray[3]}.${functionNameArray[4]}` const severity = type || 'info' const object = { source: 'WAPPI', tags: `env:${process.env.ENVIRONMENT},severity:${severity}`, namespace, functionName: functionNameString, version, log, } if (process.env.ENVIRONMENT === 'localhost') { switch (type) { case 'error': console.error(object) break case 'warning': console.warn(object) break default: console.info(object) break } return '' } return object // // Add in any // const configuration = client.createConfiguration() // const apiInstance = new v2.LogsApi(configuration) // const params: v2.LogsApiSubmitLogRequest = { // body: [ // { // ddsource: 'WAPPI', // Replace with the service name if microServices // ddtags: `env:${process.env.ENVIRONMENT},severity:${severity}`, // hostname: namespace, // message: JSON.stringify(log), // service: functionNameString, // }, // ], // contentEncoding: 'deflate', // } // return apiInstance // .submitLog(params) // .catch((error: any) => console.error(error)) } /* standardInitialLog(body, 'NameSpace_FunctionName_1_0_0') */ export const standardInitialLog = (body: any, functionName: string) => { createLog({ shortDescription: 'Starting function', body, log: {}, functionName, }) } /* standardErrorLog(body, err, 'NameSpace_FunctionName_1_0_0') */ export const standardErrorLog = (body: any, error: any, functionName: string) => { createLog({ shortDescription: `Error in ${functionName}`, log: { errorMessage: error.message, error, }, type: 'error', body, functionName, }) } /* standardDataLayerErrorLog(body, err, 'NameSpace_FunctionName_1_0_0') */ export const standardDataLayerErrorLog = (body: any, error: any, functionName: string) => { createLog({ shortDescription: `Error in ${functionName}`, log: { errorMessage: error.message, error, }, type: 'error', body, functionName: `DataLayer_${functionName}_0_0_0`, }) }