Home/Tools/@tpmjs/tools-normalize-whitespace

normalizeWhitespaceTool

@tpmjs/tools-normalize-whitespace

Normalize whitespace in text by trimming lines, collapsing multiple spaces, and standardizing line endings. Useful for cleaning up text data, formatting content, or preparing text for processing.

Official
data
v0.2.0
MIT

Interactive Playground

Test @tpmjs/tools-normalize-whitespace (normalizeWhitespaceTool) with AI-powered execution

0/2000 characters

Installation & Usage

Install this tool and use it with the AI SDK

1. Install the package

npm install @tpmjs/tools-normalize-whitespace
pnpm add @tpmjs/tools-normalize-whitespace
yarn add @tpmjs/tools-normalize-whitespace
bun add @tpmjs/tools-normalize-whitespace
deno add npm:@tpmjs/tools-normalize-whitespace

2. Import the tool

import { normalizeWhitespaceTool } from '@tpmjs/tools-normalize-whitespace';

3. Use with AI SDK

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { normalizeWhitespaceTool } from '@tpmjs/tools-normalize-whitespace';

const result = await generateText({
  model: openai('gpt-4o'),
  tools: { normalizeWhitespaceTool },
  prompt: 'Your prompt here...',
});

console.log(result.text);

Parameters

Available configuration options

Auto-extracted
text
Required
Type: string

The text to normalize

options
Optional
Type: object

Normalization options

Schema extracted: 1/1/2026, 8:18:41 AM

README

@tpmjs/tools-normalize-whitespace

Normalize whitespace in text by trimming lines, collapsing spaces, and standardizing line endings.

Installation

npm install @tpmjs/tools-normalize-whitespace

Usage

import { normalizeWhitespaceTool } from '@tpmjs/tools-normalize-whitespace';

// Use with AI SDK
const result = await normalizeWhitespaceTool.execute({
  text: '  Hello    World  \n  This  is   a test  \r\n',
  options: {
    trimLines: true,
    collapseSpaces: true,
    normalizeLineEndings: true
  }
});

console.log(result.text);
// "Hello World\nThis is a test"

console.log(result.changes);
// {
//   linesTrimmed: 2,
//   spacesCollapsed: 5,
//   lineEndingsNormalized: 1,
//   originalLength: 44,
//   normalizedLength: 24
// }

Features

  • Trim Lines: Remove leading and trailing whitespace from each line
  • Collapse Spaces: Replace multiple consecutive spaces with a single space
  • Normalize Line Endings: Convert CRLF (\r\n) to LF (\n)
  • Change Tracking: Reports detailed statistics about transformations applied
  • Configurable: Enable/disable each normalization option independently

Input Schema

ParameterTypeRequiredDescription
textstringYesThe text to normalize
optionsobjectNoNormalization options (see below)

Options

OptionTypeDefaultDescription
trimLinesbooleantrueTrim whitespace from start/end of lines
collapseSpacesbooleantrueCollapse multiple spaces into one
normalizeLineEndingsbooleantrueConvert CRLF to LF

Output Schema

interface NormalizeWhitespaceResult {
  text: string;           // The normalized text
  changes: {
    linesTrimmed: number;          // Number of lines that were trimmed
    spacesCollapsed: number;       // Number of spaces removed by collapsing
    lineEndingsNormalized: number; // Number of CRLF converted to LF
    originalLength: number;        // Character count before normalization
    normalizedLength: number;      // Character count after normalization
  };
}

Examples

Trim Lines Only

const result = await normalizeWhitespaceTool.execute({
  text: '  Hello  \n  World  ',
  options: {
    trimLines: true,
    collapseSpaces: false,
    normalizeLineEndings: false
  }
});
console.log(result.text);
// "Hello\nWorld"

Collapse Spaces Only

const result = await normalizeWhitespaceTool.execute({
  text: 'Hello    World   Test',
  options: {
    trimLines: false,
    collapseSpaces: true,
    normalizeLineEndings: false
  }
});
console.log(result.text);
// "Hello World Test"

Normalize Line Endings Only

const result = await normalizeWhitespaceTool.execute({
  text: 'Line 1\r\nLine 2\r\nLine 3',
  options: {
    trimLines: false,
    collapseSpaces: false,
    normalizeLineEndings: true
  }
});
console.log(result.text);
// "Line 1\nLine 2\nLine 3"

All Options Enabled (Default)

const result = await normalizeWhitespaceTool.execute({
  text: '  Hello    World  \r\n  Line   2  '
});
console.log(result.text);
// "Hello World\nLine 2"
console.log(result.changes);
// {
//   linesTrimmed: 2,
//   spacesCollapsed: 5,
//   lineEndingsNormalized: 1,
//   originalLength: 35,
//   normalizedLength: 18
// }

Use Cases

  • Data Cleaning: Normalize text data from various sources
  • Configuration Files: Clean up YAML/JSON/config file content
  • User Input: Sanitize and normalize user-submitted text
  • Text Processing: Prepare text for analysis or comparison
  • Code Formatting: Normalize whitespace in code snippets

License

MIT

Statistics

Downloads/month

0

Quality Score

0%

Bundle Size

NPM Keywords

tpmjs
text
data
whitespace
normalize

Maintainers

thomasdavis(thomasalwyndavis@gmail.com)

Frameworks

vercel-ai