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

normalizeWhitespaceTool

@tpmjs/tools-normalize-whitespace

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

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);

Signature

(text: string, options?: { trimLines: boolean; collapseSpaces: boolean; normalizeLineEndings: boolean }) => Promise<unknown>

Tags

collapsing
data
endings
line
normalize
spaces
standardizing
text
tpmjs
trimming
whitespace

Parameters

Available configuration options

Auto-extracted
text
Required
Type: string

The text to normalize

options
Optional
Type: object

Normalization options

Schema extracted: 3/1/2026, 4:28:50 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

8

GitHub Stars

0

Quality Score

73%

Bundle Size

NPM Keywords

tpmjs
text
data
whitespace
normalize

Maintainers

thomasdavis(thomasalwyndavis@gmail.com)

Frameworks

vercel-ai
normalizeWhitespaceTool | TPMJS | TPMJS