docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
A utility that filters configuration objects to extract only relevant fields using pattern-based key matching.
Build a configuration sanitizer that processes configuration objects and extracts only the fields that match specific patterns. This is useful for scenarios like:
Your implementation should handle:
/**
* Filters an object to include only keys matching the given patterns
* @param {object} config - The configuration object to filter
* @param {string|string[]} patterns - Pattern(s) to match keys against
* @returns {object} A new object with only matching keys
*/
function filterConfig(config, patterns);const { filterConfig } = require('./src/config-sanitizer');
// Example 1: Extract all API-related settings
const config = {
apiKey: 'secret123',
apiTimeout: 5000,
apiRetries: 3,
dbHost: 'localhost',
dbPort: 5432
};
const apiConfig = filterConfig(config, 'api*');
// Result: { apiKey: 'secret123', apiTimeout: 5000, apiRetries: 3 }
// Example 2: Extract production environment variables
const env = {
NODE_ENV: 'production',
PROD_DB_HOST: 'prod.db.com',
PROD_API_KEY: 'prod-key',
DEV_DB_HOST: 'dev.db.com',
DEV_API_KEY: 'dev-key',
LOG_LEVEL: 'info'
};
const prodEnv = filterConfig(env, 'PROD_*');
// Result: { PROD_DB_HOST: 'prod.db.com', PROD_API_KEY: 'prod-key' }
// Example 3: Get all settings except sensitive ones
const settings = {
username: 'admin',
password: 'secret',
sessionToken: 'abc123',
theme: 'dark',
language: 'en'
};
const safeSettings = filterConfig(settings, ['*', '!password', '!*Token']);
// Result: { username: 'admin', theme: 'dark', language: 'en' }Provides pattern matching capabilities for filtering object keys.