My App
BoardKitCore

Validation

Board limit checks and asset size validation

ValidationResult

All validation functions return this type:

interface ValidationResult {
    valid: boolean;
    errors: string[];
}

Default Limits

const LIMITS = {
    MAX_ELEMENTS_PER_PAGE: 10_000,
    MAX_PAGES_PER_BOARD: 100,
    MAX_ASSET_SIZE_MB: 25,
    MAX_BOARD_SIZE_MB: 100,
} as const;

validateBoardLimits

Checks element and page counts against configured limits.

function validateBoardLimits(
    elementCount: number,
    pageCount: number,
    limits?: Partial<Limits>,
): ValidationResult;
import { validateBoardLimits } from '@hfu.digital/boardkit-core';

const result = validateBoardLimits(15000, 5);
// { valid: false, errors: ['Element count 15000 exceeds maximum 10000 per page'] }

Pass custom limits to override defaults:

const result = validateBoardLimits(15000, 5, { maxElementsPerPage: 20000 });
// { valid: true, errors: [] }

validateAssetSize

Checks an asset's file size against the configured limit.

function validateAssetSize(
    sizeBytes: number,
    limits?: Partial<Limits>,
): ValidationResult;
import { validateAssetSize } from '@hfu.digital/boardkit-core';

const result = validateAssetSize(30 * 1024 * 1024); // 30 MB
// { valid: false, errors: ['Asset size 30.00MB exceeds maximum 25MB'] }

Limits Interface

interface Limits {
    maxElementsPerPage: number;
    maxPagesPerBoard: number;
    maxAssetSizeMb: number;
    maxBoardSizeMb: number;
}

All fields are optional when passed to validation functions — missing fields fall back to the defaults in LIMITS.

On this page