Spaces:
Build error
Build error
twenty / packages /twenty-server /src /engine /metadata-modules /logic-function /logic-function.exception.ts
| import { type MessageDescriptor } from '@lingui/core'; | |
| import { msg } from '@lingui/core/macro'; | |
| import { assertUnreachable } from 'twenty-shared/utils'; | |
| import { CustomException } from 'src/utils/custom-exception'; | |
| export enum LogicFunctionExceptionCode { | |
| LOGIC_FUNCTION_NOT_FOUND = 'LOGIC_FUNCTION_NOT_FOUND', | |
| LOGIC_FUNCTION_ALREADY_EXIST = 'LOGIC_FUNCTION_ALREADY_EXIST', | |
| LOGIC_FUNCTION_NOT_READY = 'LOGIC_FUNCTION_NOT_READY', | |
| LOGIC_FUNCTION_BUILDING = 'LOGIC_FUNCTION_BUILDING', | |
| LOGIC_FUNCTION_CODE_UNCHANGED = 'LOGIC_FUNCTION_CODE_UNCHANGED', | |
| LOGIC_FUNCTION_EXECUTION_LIMIT_REACHED = 'LOGIC_FUNCTION_EXECUTION_LIMIT_REACHED', | |
| LOGIC_FUNCTION_CREATE_FAILED = 'LOGIC_FUNCTION_CREATE_FAILED', | |
| LOGIC_FUNCTION_COMPILATION_FAILED = 'LOGIC_FUNCTION_COMPILATION_FAILED', | |
| LOGIC_FUNCTION_EXECUTION_TIMEOUT = 'LOGIC_FUNCTION_EXECUTION_TIMEOUT', | |
| LOGIC_FUNCTION_PLATFORM_EXECUTION_ERROR = 'LOGIC_FUNCTION_PLATFORM_EXECUTION_ERROR', | |
| LOGIC_FUNCTION_LAYER_BUILD_FAILED = 'LOGIC_FUNCTION_LAYER_BUILD_FAILED', | |
| LOGIC_FUNCTION_DISABLED = 'LOGIC_FUNCTION_DISABLED', | |
| LOGIC_FUNCTION_INVALID_SEED_PROJECT = 'LOGIC_FUNCTION_INVALID_SEED_PROJECT', | |
| INVALID_LOGIC_FUNCTION_INPUT = 'INVALID_LOGIC_FUNCTION_INPUT', | |
| LOGIC_FUNCTION_PREBUILT_BUNDLE_NOT_INSTALLED = 'LOGIC_FUNCTION_PREBUILT_BUNDLE_NOT_INSTALLED', | |
| } | |
| const getLogicFunctionExceptionUserFriendlyMessage = ( | |
| code: LogicFunctionExceptionCode, | |
| ) => { | |
| switch (code) { | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_NOT_FOUND: | |
| return msg`Function not found.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_ALREADY_EXIST: | |
| return msg`A function with this name already exists.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_NOT_READY: | |
| return msg`Function is not ready.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_BUILDING: | |
| return msg`Function is currently building.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_CODE_UNCHANGED: | |
| return msg`Function code is unchanged.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_EXECUTION_LIMIT_REACHED: | |
| return msg`Function execution limit reached.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_CREATE_FAILED: | |
| return msg`Failed to create function.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_COMPILATION_FAILED: | |
| return msg`Function code failed to compile.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_EXECUTION_TIMEOUT: | |
| return msg`Function execution timed out.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_PLATFORM_EXECUTION_ERROR: | |
| return msg`Function execution failed.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_LAYER_BUILD_FAILED: | |
| return msg`Failed to build function dependencies.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_DISABLED: | |
| return msg`Logic function execution is disabled.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_INVALID_SEED_PROJECT: | |
| return msg`Invalid seed project configuration.`; | |
| case LogicFunctionExceptionCode.INVALID_LOGIC_FUNCTION_INPUT: | |
| return msg`Invalid logic function input.`; | |
| case LogicFunctionExceptionCode.LOGIC_FUNCTION_PREBUILT_BUNDLE_NOT_INSTALLED: | |
| return msg`Prebuilt bundle is not installed on the function. Rebuild and try again.`; | |
| default: | |
| assertUnreachable(code); | |
| } | |
| }; | |
| export class LogicFunctionException extends CustomException<LogicFunctionExceptionCode> { | |
| constructor( | |
| message: string, | |
| code: LogicFunctionExceptionCode, | |
| { userFriendlyMessage }: { userFriendlyMessage?: MessageDescriptor } = {}, | |
| ) { | |
| super(message, code, { | |
| userFriendlyMessage: | |
| userFriendlyMessage ?? | |
| getLogicFunctionExceptionUserFriendlyMessage(code), | |
| }); | |
| } | |
| } | |