Constants API Reference
This page documents all constants, default values, and configuration presets available in backupx.
Backup Type Constants
BackupType
Enumeration of all supported backup types.
const BackupType = {
SQLITE: 'SQLITE',
POSTGRESQL: 'POSTGRESQL',
MYSQL: 'MYSQL',
FILE: 'FILE',
DIRECTORY: 'DIRECTORY'
} as const
Usage:
import { BackupType } from 'backupx'
const config = {
type: BackupType.POSTGRESQL,
name: 'my-database',
// ...
}
Error Code Constants
BackupErrorCode
Enumeration of all possible backup error codes.
const BackupErrorCode = {
INVALID_CONFIG: 'INVALID_CONFIG',
FILE_NOT_FOUND: 'FILE_NOT_FOUND',
PERMISSION_DENIED: 'PERMISSION_DENIED',
CONNECTION_FAILED: 'CONNECTION_FAILED',
TIMEOUT: 'TIMEOUT',
AUTHENTICATION_FAILED: 'AUTHENTICATION_FAILED',
DISK_FULL: 'DISK_FULL',
COMPRESSION_FAILED: 'COMPRESSION_FAILED',
DATABASE_ERROR: 'DATABASE_ERROR',
QUERY_FAILED: 'QUERY_FAILED',
SCHEMA_ERROR: 'SCHEMA_ERROR',
UNKNOWN_ERROR: 'UNKNOWN_ERROR'
} as const
Default Configuration Values
DEFAULT_CONFIG
Default backup configuration values.
const DEFAULT_CONFIG = {
verbose: false,
outputPath: './backups',
compress: false,
preserveMetadata: false,
followSymlinks: false,
maxFileSize: undefined, // No limit
timeout: 30000, // 30 seconds
retryAttempts: 3,
retryDelay: 1000, // 1 second
} as const
DEFAULT_RETENTION
Default retention policy values.
const DEFAULT_RETENTION = {
count: 10, // Keep last 10 backups
maxAge: 30, // Delete backups older than 30 days
} as const
DEFAULT_COMPRESSION
Default compression settings.
const DEFAULT_COMPRESSION = {
level: 6, // Gzip compression level (1-9)
algorithm: 'gzip',
chunkSize: 16 * 1024, // 16KB chunks
} as const
Database Connection Defaults
POSTGRESQL_DEFAULTS
Default PostgreSQL connection settings.
const POSTGRESQL_DEFAULTS = {
port: 5432,
ssl: false,
includeSchema: true,
includeData: true,
connectionTimeout: 10000, // 10 seconds
queryTimeout: 0, // No timeout for dumps
} as const
MYSQL_DEFAULTS
Default MySQL connection settings.
const MYSQL_DEFAULTS = {
port: 3306,
ssl: false,
includeSchema: true,
includeData: true,
connectionTimeout: 10000, // 10 seconds
charset: 'utf8mb4',
} as const
SQLITE_DEFAULTS
Default SQLite backup settings.
const SQLITE_DEFAULTS = {
journalMode: 'WAL',
busyTimeout: 5000, // 5 seconds
checkpointBefore: true,
} as const
File System Constants
FILE_EXTENSIONS
Common file extensions for backup files.
const FILE_EXTENSIONS = {
SQL: '.sql',
SQLITE: '.sqlite',
JSON: '.json',
TAR: '.tar',
GZIP: '.gz',
COMPRESSED_SQL: '.sql.gz',
COMPRESSED_TAR: '.tar.gz',
METADATA: '.meta.json',
} as const
COMMON_EXCLUDE_PATTERNS
Commonly excluded file patterns.
const COMMON_EXCLUDE_PATTERNS = {
NODE_MODULES: ['**/node_modules/**'],
VERSION_CONTROL: ['.git/**', '.svn/**', '.hg/**'],
BUILD_OUTPUT: ['dist/**', 'build/**', 'out/**'],
LOGS: ['**/*.log', 'logs/**'],
TEMP_FILES: ['**/*.tmp', '**/*.temp', '**/tmp/**'],
CACHE: ['**/.cache/**', '**/cache/**'],
OS_FILES: ['.DS_Store', 'Thumbs.db', '*.swp'],
IDE: ['.vscode/**', '.idea/**', '*.sublime-*'],
// Combined patterns
DEVELOPMENT: [
'**/node_modules/**',
'.git/**',
'dist/**',
'build/**',
'**/*.log',
'**/*.tmp',
'.DS_Store',
'.vscode/**'
],
PRODUCTION: [
'**/*.log',
'**/tmp/**',
'**/.cache/**',
'.DS_Store'
]
} as const
COMMON_INCLUDE_PATTERNS
Commonly included file patterns.
const COMMON_INCLUDE_PATTERNS = {
SOURCE_CODE: [
'**/*.ts',
'**/*.js',
'**/*.tsx',
'**/*.jsx',
'**/*.vue',
'**/*.py',
'**/*.java',
'**/*.c',
'**/*.cpp',
'**/*.h',
'**/*.cs',
'**/*.php',
'**/*.rb',
'**/*.go',
'**/*.rs'
],
CONFIG_FILES: [
'**/*.json',
'**/*.yaml',
'**/*.yml',
'**/*.toml',
'**/*.ini',
'**/*.conf',
'**/.*rc',
'**/.env*'
],
DOCUMENTATION: [
'**/*.md',
'**/*.txt',
'**/*.rst',
'**/*.adoc'
],
WEB_ASSETS: [
'**/*.html',
'**/*.css',
'**/*.scss',
'**/*.sass',
'**/*.less'
],
IMAGES: [
'**/*.jpg',
'**/*.jpeg',
'**/*.png',
'**/*.gif',
'**/*.webp',
'**/*.svg'
]
} as const
Performance Constants
MEMORY_LIMITS
Memory usage limits for different operations.
const MEMORY_LIMITS = {
SMALL_FILE: 1024 * 1024, // 1MB
MEDIUM_FILE: 10 * 1024 * 1024, // 10MB
LARGE_FILE: 100 * 1024 * 1024, // 100MB
MAX_MEMORY_USAGE: 512 * 1024 * 1024, // 512MB
CHUNK_SIZE: 64 * 1024, // 64KB
} as const
TIMEOUT_VALUES
Timeout values for different operations.
const TIMEOUT_VALUES = {
DATABASE_CONNECTION: 10000, // 10 seconds
DATABASE_QUERY: 300000, // 5 minutes
FILE_OPERATION: 60000, // 1 minute
COMPRESSION: 300000, // 5 minutes
NETWORK_REQUEST: 30000, // 30 seconds
} as const
RETRY_SETTINGS
Default retry configuration.
const RETRY_SETTINGS = {
MAX_ATTEMPTS: 3,
BASE_DELAY: 1000, // 1 second
MAX_DELAY: 30000, // 30 seconds
BACKOFF_MULTIPLIER: 2,
JITTER: true,
} as const
Configuration Presets
PRESET_CONFIGS
Pre-configured backup configurations for common scenarios.
const PRESET_CONFIGS = {
MINIMAL: {
verbose: false,
compress: false,
retention: { count: 5 }
},
DEVELOPMENT: {
verbose: true,
compress: true,
retention: { count: 10, maxAge: 7 },
exclude: COMMON_EXCLUDE_PATTERNS.DEVELOPMENT
},
PRODUCTION: {
verbose: false,
compress: true,
retention: { count: 30, maxAge: 90 },
exclude: COMMON_EXCLUDE_PATTERNS.PRODUCTION,
preserveMetadata: true
},
HIGH_FREQUENCY: {
verbose: false,
compress: true,
retention: { count: 100, maxAge: 7 }, // Keep many recent backups
fastMode: true
},
ARCHIVE: {
verbose: true,
compress: true,
retention: { count: 1000, maxAge: 365 }, // Long-term storage
preserveMetadata: true,
includeChecksums: true
}
} as const
Validation Constants
VALIDATION_RULES
Configuration validation rules and limits.
const VALIDATION_RULES = {
MIN_RETENTION_COUNT: 1,
MAX_RETENTION_COUNT: 1000,
MIN_RETENTION_DAYS: 1,
MAX_RETENTION_DAYS: 3650, // 10 years
MAX_FILE_SIZE: 1024 * 1024 * 1024 * 100, // 100GB
MAX_FILENAME_LENGTH: 255,
MAX_PATH_LENGTH: 4096,
VALID_COMPRESSION_LEVELS: [1, 2, 3, 4, 5, 6, 7, 8, 9],
VALID_CHARSETS: ['utf8', 'utf8mb4', 'latin1', 'ascii'],
DATABASE_NAME_PATTERN: /^[\w-]+$/,
FILENAME_PATTERN: /^[\w.-]+$/,
} as const
Format Constants
DATE_FORMATS
Date formatting patterns used in backup filenames.
const DATE_FORMATS = {
FILENAME: 'YYYY-MM-DD_HH-mm-ss',
ISO: 'YYYY-MM-DDTHH:mm:ss.sssZ',
HUMAN: 'YYYY-MM-DD HH:mm:ss',
DATE_ONLY: 'YYYY-MM-DD',
TIME_ONLY: 'HH:mm:ss',
} as const
SIZE_UNITS
Units for formatting file sizes.
const SIZE_UNITS = ['Bytes', 'KB', 'MB', 'GB', 'TB'] as const
TIME_UNITS
Units for formatting durations.
const TIME_UNITS = {
MILLISECOND: 1,
SECOND: 1000,
MINUTE: 60 * 1000,
HOUR: 60 * 60 * 1000,
DAY: 24 * 60 * 60 * 1000,
} as const
Usage Examples
Using Presets
import { COMMON_EXCLUDE_PATTERNS, PRESET_CONFIGS } from 'backupx'
const config = {
...PRESET_CONFIGS.PRODUCTION,
databases: [
// ...
],
files: [{
name: 'source',
path: './src',
exclude: COMMON_EXCLUDE_PATTERNS.DEVELOPMENT
}]
}
Using Default Values
import { DEFAULT_CONFIG, DEFAULT_RETENTION } from 'backupx'
const config = {
verbose: true, // Override default
...DEFAULT_CONFIG,
retention: DEFAULT_RETENTION
}
All constants are exported from the main package and provide sensible defaults for most use cases while allowing full customization when needed.
Example usage:
const config = createDefaultConfig()
const manager = new BackupManager(config)