๐งผ Sanitizers
A comprehensive utility to sanitize strings, objects, and arrays by removing or masking sensitive data such as emails, paths, IPs, URLs, credit cards, and more.
Import
1import { Sanitizers as SZ } from "hbh-nodes";2const { Sanitizers, deepSanitize, applySanitizers, sanitizeAll, capitalize, getSanitizerNames } = SZ;
Sanitizers
An object containing individual sanitization functions automatically generated from common sensitive patterns.
Example Functions:
sanitizeEmail(str)โ Masks emails.sanitizePath(str)โ Masks file paths.sanitizeIp(str)โ Masks IPv4/IPv6 addresses.sanitizeCreditCard(str)โ Masks credit card numbers.sanitizeHtml(str)โ Strips HTML tags.sanitizeJwt(str)โ Masks JWT tokens.
Usage:
1const dirty = "User email: test@example.com";2const clean = Sanitizers.sanitizeEmail(dirty);3console.log(clean); // User email: [SANITIZED:email]
deepSanitize(obj, sanitizerFns = [], sanitizeKeys = false)
Recursively sanitizes strings in objects or arrays using provided sanitizer functions.
Parameters:
objโ Object, array, or string to sanitize.sanitizerFnsโ Array of sanitizer functions to apply.sanitizeKeys(boolean) โ Iftrue, also sanitizes object keys.
Example:
1const data = {2 user: {3 email: "test@example.com",4 password: "1234"5 }6};8const clean = deepSanitize(data, [Sanitizers.sanitizeEmail]);9console.log(clean);10// { user: { email: '[SANITIZED:email]', password: '1234' } }
applySanitizers(value, sanitizers = [])
Applies an array of sanitizer functions to a single string safely.
Example:
1const dirty = "My email is test@example.com";2const clean = applySanitizers(dirty, [Sanitizers.sanitizeEmail]);3console.log(clean); // My email is [SANITIZED:email]
sanitizeAll(str, options = {})
Convenience function to apply multiple sanitizers with filtering and custom replacements.
Options:
onlyโ Array of sanitizer names to apply exclusively.excludeโ Array of sanitizer names to skip.replacementsโ Custom replacement strings for specific sanitizers.
Example:
1const dirty = "Contact me at test@example.com or 123 Main St";2const clean = sanitizeAll(dirty, { exclude: ["sanitizePath"] });3console.log(clean); // Contact me at [SANITIZED:email] or 123 Main St
capitalize(str)
Utility to capitalize the first letter of a string, mainly used for dynamically naming sanitizer functions.
Example:
1console.log(capitalize("email")); // Email
getSanitizerNames()
Returns an array of all generated sanitizer function names.
Example:
1console.log(getSanitizerNames());2// ["sanitizePath", "sanitizeEmail", "sanitizeIp", ...]
Edge Cases & Notes:
- Sanitizers operate safely on non-string values by returning them unchanged.
deepSanitizecan handle nested arrays and objects of arbitrary depth.- Custom replacements allow flexible masking beyond default
[SANITIZED:<type>].