@thyself/clean-empty-values
TypeScript icon, indicating that this package has built-in type declarations

1.1.5 • Public • Published

clean-empty-values, or "cev"

Fast object empty values cleaner.

NPM Downloads Dependents (via libraries.io) npm bundle size (scoped) npm bundle size (scoped)

Features

  • Dependency-free, super small and efficient package.
  • Supports the following clean-ups: undefined, null, NaN, empty-strings, emptyObjects, emptyArrays.
  • Supports a "clean in place" strategy that reduces memory consumption, with the cleanInPlace option.
  • Supports nested-objects clean-up.
  • Advanced TypeScript support for maximum flexibility on development time.
  • Both CommonJS and ESM support.

Install

# npm
npm i @thyself/clean-empty-values
# yarn
yarn add @thyself/clean-empty-values
# pnpm
pnpm add @thyself/clean-empty-values

Usage

usage examples presented as jest tests for convenience

Simple usage

import { cleanEmptyValues } from '@thyself/clean-empty-values';
// value will be `{ y: null }`.
const value = cleanEmptyValues({ x: '', y: null }, { emptyStrings: true });
// value will be `{ x: '' }`.
const value = cleanEmptyValues({ x: '', y: null }, { null: true });
// value will be `{}`.
const value = cleanEmptyValues({ x: '', y: null }, { null: true, emptyStrings: true });

// value will be `{ y: { z: null, zyx: undefined } }`
const value = cleanEmptyValues({ x: '', y: { z: null, abc: '', zyx: undefined } }, { emptyStrings: true });

// value will be `{}`. Using "replaceInPlace" which optimizes memory usage.
const value = cleanEmptyValues({ x: '', y: null }, { null: true, emptyStrings: true, replaceInPlace: true });

See more examples by reviewing the unit tests.

Advanced TypeScript Support

Provides maximum flexibility and strongly-typed code.

import { cleanEmptyValues } from '@thyself/clean-empty-values';
type MyType = { y: { z: null | number } };
const myValue = cleanEmptyValues<MyType>({ x: '', y: { z: null, abc: '' } }, { emptyStrings: true });

myValue.x; // ❌ Type error, `"myValue.x` is NOT known "MyType".
myValue.y.abc; // ❌ Type error, `"myValue.y.abc` is NOT known by the "MyType"
myValue.y; // ✅ "myValue.y" is known by the Typescript compiler (tsc)
myValue.y.z; // ✅ "myValue.y.z" is known by the Typescript compiler (tsc)
myValue.y.z = 7; // ✅ "myValue.z" can be assigned to number.
myValue.y.z = '7'; // ❌ Type error, "myValue.y.z" must be assigned to `null | number`

"replaceInPlace" option

This option is considered more advanced, that's why its default value is false.

"replace in place" meaning that instead of creating new helper objects and variables building the "cleaned" object, it does the replace over the original object reference and by that save memory and improves performance.

🚧 WARNING! If you utilize the original object reference in other places in your code using this option might affect your code, so ensure you know what you're doing. 🚧

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i @thyself/clean-empty-values

      Weekly Downloads

      13

      Version

      1.1.5

      License

      MIT

      Unpacked Size

      17 kB

      Total Files

      11

      Last publish

      Collaborators

      • the_offricial