Sanitize Data
Cleans and normalizes strings, arrays, and objects by trimming whitespace, removing empty values, and applying customizable filters.
sanitizeData
The sanitizeData function is a versatile utility for cleaning, trimming, and filtering data structures (strings, arrays, and objects). It can strip out nullish values, empty objects/arrays, falsy values, or exclude specific keys based on dot notation.
Function Signatures
// For String
function sanitizeData(input: string): string
// For String Array
function sanitizeData(input: string[]): string[]
// For Object
function sanitizeData<
Data extends GenericObject,
Ignored extends DotNotationKey<Data> = never,
PoR extends PartialOrRequired = 'required',
>(
object: Data,
options?: SanitizeOptions<Data, Ignored>,
_return?: PoR
): SanitizedData<Data, Ignored, PoR>
// For Object Array
function sanitizeData<
Data extends GenericObject,
Ignored extends DotNotationKey<Data> = never,
PoR extends PartialOrRequired = 'required',
>(
array: Data[],
options?: SanitizeOptions<Data, Ignored>,
_return?: PoR
): Array<SanitizedData<Data, Ignored, PoR>>Parameters
input/object/array: The data structure to sanitize.options(SanitizeOptions, optional): Configuration options for the sanitization behavior:keysToIgnore(Ignored[]): Array of dot-notation keys to exclude.trimStrings(boolean): Iftrue, trims whitespace from string values. Defaults totrue.ignoreNullish(boolean): Iftrue, excludesnullandundefinedproperties. Defaults tofalse.ignoreFalsy(boolean): Iftrue, excludes falsy values (false,0,"",null,undefined). Defaults tofalse.ignoreEmpty(boolean): Iftrue, excludes empty objects ({}) and empty arrays ([]). Defaults tofalse.requiredKeys("*" | DotNotationKey<T>[]): Array of key paths that must always be preserved, bypassing filters. Defaults toundefined.
_return('partial' | 'required', optional): Determines if the returned TypeScript type should be deeply partial or maintain original property requirements. Defaults to'required'.
Return Value
- The sanitized version of the input, with types aligned according to the
_returnconfiguration.
Example Usage
playground.ts
Types
SanitizeOptions
interface SanitizeOptions<T, Ignored extends DotNotationKey<T>> {
keysToIgnore?: Ignored[];
trimStrings?: boolean;
ignoreNullish?: boolean;
ignoreFalsy?: boolean;
ignoreEmpty?: boolean;
requiredKeys?: '*' | DotNotationKey<T>[];
}PartialOrRequired
type PartialOrRequired = 'partial' | 'required';Last updated: Sun, Jun 14, 2026 07:06:16AM (UTC)
