Skip to content
File

Blob: src/worker/dav/limits.ts

typescript37 lines
1export function positiveIntegerEnv(value: string | undefined, fallback: number): number {
2 const parsed = Number.parseInt(value || String(fallback), 10);
3 return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
4}
5 
6export function maxXmlBodyBytes(env: Env): number {
7 return positiveIntegerEnv(env.MAX_XML_BODY_BYTES, 1_048_576);
8}
9 
10export function maxReportResults(env: Env): number {
11 return positiveIntegerEnv(env.MAX_REPORT_RESULTS, 5_000);
12}
13 
14export function maxFileBytes(env: Env): number {
15 return positiveIntegerEnv(env.MAX_FILE_BYTES, 100_000_000);
16}
17 
18export function maxDavDepthInfinityNodes(env: Env): number {
19 return positiveIntegerEnv(env.MAX_DAV_DEPTH_INFINITY_NODES, 10_000);
20}
21 
22export function maxCalendarObjectBytes(env: Env): number {
23 return positiveIntegerEnv(env.MAX_CALENDAR_OBJECT_BYTES, 1_048_576);
24}
25 
26export function maxAddressObjectBytes(env: Env): number {
27 return positiveIntegerEnv(env.MAX_ADDRESS_OBJECT_BYTES, 1_048_576);
28}
29 
30export function maxRecurrenceYears(env: Env): number {
31 return positiveIntegerEnv(env.MAX_RECURRENCE_YEARS, 5);
32}
33 
34export function maxRecurrenceInstances(env: Env): number {
35 return positiveIntegerEnv(env.MAX_RECURRENCE_INSTANCES, 10_000);
36}