37 lines
995 B
TypeScript
37 lines
995 B
TypeScript
|
|
/**
|
||
|
|
* Attachment size configuration for messaging channels
|
||
|
|
*
|
||
|
|
* Environment variables:
|
||
|
|
* - BRIDGE_MAX_ATTACHMENT_SIZE_MB: Maximum size for a single attachment in MB (default: 50)
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get the maximum attachment size in bytes from environment variable
|
||
|
|
* Defaults to 50MB if not set
|
||
|
|
*/
|
||
|
|
export function getMaxAttachmentSize(): number {
|
||
|
|
const envValue = process.env.BRIDGE_MAX_ATTACHMENT_SIZE_MB;
|
||
|
|
const sizeInMB = envValue ? parseInt(envValue, 10) : 50;
|
||
|
|
|
||
|
|
// Validate the value
|
||
|
|
if (isNaN(sizeInMB) || sizeInMB <= 0) {
|
||
|
|
console.warn(`Invalid BRIDGE_MAX_ATTACHMENT_SIZE_MB value: ${envValue}, using default 50MB`);
|
||
|
|
return 50 * 1024 * 1024;
|
||
|
|
}
|
||
|
|
|
||
|
|
return sizeInMB * 1024 * 1024;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get the maximum total size for all attachments in a message
|
||
|
|
* This is 4x the single attachment size
|
||
|
|
*/
|
||
|
|
export function getMaxTotalAttachmentSize(): number {
|
||
|
|
return getMaxAttachmentSize() * 4;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Maximum number of attachments per message
|
||
|
|
*/
|
||
|
|
export const MAX_ATTACHMENTS = 10;
|