auto-builder-sdk
Version:
SDK for building Auto Builder workflow plugins
51 lines (50 loc) • 2.35 kB
JavaScript
/**
* Pagination Configuration for Auto-Builder SDK
*
* This module contains all configurable pagination settings that can be
* overridden by environment variables or external configuration.
*/
/**
* Pagination configuration constants
* These can be overridden by environment variables or configuration
*/
export const PAGINATION_CONFIG = {
// Default values
DEFAULT_PAGE: Number(process.env.PAGINATION_DEFAULT_PAGE) || 1,
DEFAULT_PAGE_SIZE: Number(process.env.PAGINATION_DEFAULT_PAGE_SIZE) || 100,
// Validation limits
MIN_PAGE: Number(process.env.PAGINATION_MIN_PAGE) || 1,
MIN_PAGE_SIZE: Number(process.env.PAGINATION_MIN_PAGE_SIZE) || 1,
MAX_PAGE_SIZE: Number(process.env.PAGINATION_MAX_PAGE_SIZE) || 1000,
// String processing limits
MAX_STRING_LENGTH: Number(process.env.PAGINATION_MAX_STRING_LENGTH) || 15,
// Mathematical limits
MAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,
// Error messages
ERROR_MESSAGES: {
PAGE_SIZE_EXCEEDED: (resource, operation, max) => `Page size cannot exceed ${max} for ${resource}.${operation}`,
PAGE_NUMBER_INVALID: (resource, operation, min) => `Page number must be ${min} or greater for ${resource}.${operation}`,
DATA_MUST_BE_ARRAY: 'Data must be an array',
PROPERTIES_MUST_BE_ARRAY: 'Properties must be an array'
}
};
/**
* Helper function to update pagination configuration at runtime
* Useful for testing or dynamic configuration changes
*/
export function updatePaginationConfig(updates) {
Object.assign(PAGINATION_CONFIG, updates);
}
/**
* Helper function to reset pagination configuration to defaults
*/
export function resetPaginationConfig() {
// Reset to environment variable defaults
PAGINATION_CONFIG.DEFAULT_PAGE = Number(process.env.PAGINATION_DEFAULT_PAGE) || 1;
PAGINATION_CONFIG.DEFAULT_PAGE_SIZE = Number(process.env.PAGINATION_DEFAULT_PAGE_SIZE) || 100;
PAGINATION_CONFIG.MIN_PAGE = Number(process.env.PAGINATION_MIN_PAGE) || 1;
PAGINATION_CONFIG.MIN_PAGE_SIZE = Number(process.env.PAGINATION_MIN_PAGE_SIZE) || 1;
PAGINATION_CONFIG.MAX_PAGE_SIZE = Number(process.env.PAGINATION_MAX_PAGE_SIZE) || 1000;
PAGINATION_CONFIG.MAX_STRING_LENGTH = Number(process.env.PAGINATION_MAX_STRING_LENGTH) || 15;
PAGINATION_CONFIG.MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
}