Toolbox-XToolbox-X

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): If true, trims whitespace from string values. Defaults to true.
    • ignoreNullish (boolean): If true, excludes null and undefined properties. Defaults to false.
    • ignoreFalsy (boolean): If true, excludes falsy values (false, 0, "", null, undefined). Defaults to false.
    • ignoreEmpty (boolean): If true, excludes empty objects ({}) and empty arrays ([]). Defaults to false.
    • requiredKeys ("*" | DotNotationKey<T>[]): Array of key paths that must always be preserved, bypassing filters. Defaults to undefined.
  • _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 _return configuration.

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)

On this page