@smooai/utils
Version:
A collection of shared utilities and tools used across SmooAI projects. This package provides common functionality to standardize and simplify development across all SmooAI repositories.
95 lines (94 loc) • 4.41 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const require_chunk = require("../chunk-CoPdw6nB.cjs");
const require_validation_standardSchema = require("../validation/standardSchema.cjs");
const require_api_ApiError = require("./ApiError.cjs");
const require_error_errorHandler = require("../error/errorHandler.cjs");
let zod = require("zod");
let http_status_codes = require("http-status-codes");
let _smooai_logger_AwsServerLogger = require("@smooai/logger/AwsServerLogger");
_smooai_logger_AwsServerLogger = require_chunk.__toESM(_smooai_logger_AwsServerLogger);
//#region src/api/apiHandler.ts
const logger = new _smooai_logger_AwsServerLogger.default();
async function lambdaApiHandler(event, context, handler) {
try {
logger.addLambdaContext(event, context);
return await require_error_errorHandler.errorHandler(async (event, context) => {
const response = await handler(event, context);
return {
...response,
body: response.body ? typeof response.body === "string" ? response.body : JSON.stringify(response.body) : void 0
};
}, event, context);
} catch (error) {
if (error instanceof require_api_ApiError.ApiError) {
logger.error(error, `An API error occurred: Status: ${error.status} (${error.statusText}); Message: ${error.message}`);
return {
body: JSON.stringify({ error: {
message: error.message,
statusText: error.statusText
} }),
statusCode: error.status,
headers: { "Content-type": "application/json" }
};
} else if (error instanceof require_validation_standardSchema.HumanReadableSchemaError) {
logger.error(error, `A schema validation error occurred: ${error.message}`);
return {
body: JSON.stringify({ error: {
message: error.message,
statusText: (0, http_status_codes.getReasonPhrase)(http_status_codes.StatusCodes.BAD_REQUEST)
} }),
statusCode: http_status_codes.StatusCodes.BAD_REQUEST,
headers: { "Content-type": "application/json" }
};
} else if (error instanceof zod.ZodError) {
const prettyError = zod.z.prettifyError(error);
logger.error(error, `A validation error occurred: ${prettyError}`);
return {
body: JSON.stringify({ error: {
message: prettyError,
statusText: (0, http_status_codes.getReasonPhrase)(http_status_codes.StatusCodes.BAD_REQUEST)
} }),
statusCode: http_status_codes.StatusCodes.BAD_REQUEST,
headers: { "Content-type": "application/json" }
};
} else if (error instanceof Error) {
logger.error(error, `An unexpected error occurred: ${error.message}`);
return {
body: JSON.stringify({ error: {
message: error.message,
statusText: (0, http_status_codes.getReasonPhrase)(http_status_codes.StatusCodes.INTERNAL_SERVER_ERROR)
} }),
statusCode: http_status_codes.StatusCodes.INTERNAL_SERVER_ERROR,
headers: { "Content-type": "application/json" }
};
} else {
logger.error(error, `An unexpected error occurred: ${error}`);
return { body: JSON.stringify({ error: {
message: "An unexpected error occurred.",
statusCode: http_status_codes.StatusCodes.INTERNAL_SERVER_ERROR,
statusText: (0, http_status_codes.getReasonPhrase)(http_status_codes.StatusCodes.INTERNAL_SERVER_ERROR),
headers: { "Content-type": "application/json" }
} }) };
}
}
}
async function eventBridgeHandler(event, context, handler) {
try {
logger.addLambdaContext(void 0, context);
return await require_error_errorHandler.errorHandler(async (event, context) => {
await handler(event, context);
}, event, context);
} catch (error) {
if (error instanceof require_api_ApiError.ApiError) logger.error(error, `An API error occurred: Status: ${error.status} (${error.statusText}); Message: ${error.message}`);
else if (error instanceof require_validation_standardSchema.HumanReadableSchemaError) logger.error(error, `A schema validation error occurred: ${error.message}`);
else if (error instanceof zod.ZodError) {
const prettyError = zod.z.prettifyError(error);
logger.error(error, `A validation error occurred: ${prettyError}`);
} else if (error instanceof Error) logger.error(error, `An unexpected error occurred: ${error.message}`);
else logger.error(error, `An unexpected error occurred: ${error}`);
}
}
//#endregion
exports.eventBridgeHandler = eventBridgeHandler;
exports.lambdaApiHandler = lambdaApiHandler;
//# sourceMappingURL=apiHandler.cjs.map