1.0.2 • Published 7 months ago

@integral-de/filename-sanitizer v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

Filename Sanitizer

npm version Tests codecov License: MIT

A JavaScript/TypeScript utility to sanitize filenames ensuring compatibility with S3 object key naming guidelines and general file system use.

Features

  • Converts filenames to S3-compatible format
  • Handles Unicode characters
  • Replaces problematic characters with underscores
  • Limits filename length considering UTF-8 encoding
  • 100% test coverage
  • Zero dependencies
  • TypeScript type definitions included

Installation

npm install @integral-de/filename-sanitizer

Usage

JavaScript (ES modules)

import { sanitizeFileName } from '@integral-de/filename-sanitizer';

const sanitized = sanitizeFileName('My File (1).txt');
console.log(sanitized); // Output: my_file_1.txt

TypeScript

import { sanitizeFileName } from '@integral-de/filename-sanitizer';

const sanitized: string = sanitizeFileName('My File (1).txt');
console.log(sanitized); // Output: my_file_1.txt

Examples

// Basic usage
sanitizeFileName('my file.txt') // -> 'my_file.txt'

// Unicode characters
sanitizeFileName('résumé.pdf') // -> 'resume.pdf'

// Special characters
sanitizeFileName('file(1)@{special}.txt') // -> 'file_1_special.txt'

// Long filenames
sanitizeFileName('a'.repeat(1000) + '.txt') // -> truncated to safe length

// Hidden files
sanitizeFileName('.env') // -> '.env'

API

sanitizeFileName(fileName: string): string

Sanitizes a filename to ensure it's compatible with S3 object key naming guidelines.

Parameters

  • fileName (string): The original filename to sanitize

Returns

  • (string): A sanitized filename safe for S3 storage

License

MIT

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago