CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-humanize-plus

A simple utility library for making the web more humane with functions for formatting numbers, strings, arrays, and file sizes.

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

pluralization-lists.mddocs/

Pluralization and Lists

Functions for handling pluralization, converting arrays to readable strings, and describing occurrences.

Capabilities

Pluralization

Returns the singular or plural form of a word based on the count.

/**
 * Returns plural version of a word if value is not 1
 * @param number - Count to check for pluralization
 * @param singular - Singular form of the word
 * @param plural - Plural form (default: singular + 's')
 * @returns Appropriate singular or plural form
 */
function pluralize(number: number, singular: string, plural?: string): string | null;

Usage Examples:

const Humanize = require('humanize-plus');

// Default pluralization (adds 's')
console.log(Humanize.pluralize(1, 'cat')); // "cat"
console.log(Humanize.pluralize(2, 'cat')); // "cats"
console.log(Humanize.pluralize(0, 'item')); // "items"

// Custom plural forms
console.log(Humanize.pluralize(1, 'person', 'people')); // "person"
console.log(Humanize.pluralize(3, 'person', 'people')); // "people"
console.log(Humanize.pluralize(1, 'child', 'children')); // "child"
console.log(Humanize.pluralize(2, 'child', 'children')); // "children"

// Returns null for invalid input
console.log(Humanize.pluralize(null, 'word')); // null
console.log(Humanize.pluralize(5, null)); // null

Oxford Comma Lists

Converts an array to a human-readable string with proper Oxford comma formatting.

/**
 * Converts a list of items to a human readable string with optional limit
 * @param items - Array of items to join
 * @param limit - Optional maximum number of items to show
 * @param limitStr - Custom string for excess items
 * @returns Formatted string with proper conjunctions
 */
function oxford(items: string[], limit?: number, limitStr?: string): string;

Usage Examples:

const Humanize = require('humanize-plus');

const fruits = ['apple', 'orange', 'banana', 'pear', 'pineapple'];

// Basic Oxford comma formatting
console.log(Humanize.oxford([])); // ""
console.log(Humanize.oxford(['apple'])); // "apple"
console.log(Humanize.oxford(['apple', 'orange'])); // "apple and orange"
console.log(Humanize.oxford(fruits)); // "apple, orange, banana, pear, and pineapple"

// With limits
console.log(Humanize.oxford(fruits, 3)); // "apple, orange, banana, and 2 others"
console.log(Humanize.oxford(fruits, 4)); // "apple, orange, banana, pear, and 1 other"

// Custom limit strings
console.log(Humanize.oxford(fruits, 3, 'and some other fruits')); 
// "apple, orange, banana, and some other fruits"

Occurrence Descriptions

Converts numbers to occurrence descriptions with special handling for common values.

/**
 * Interprets numbers as occurrences with optional custom overrides
 * @param value - Number of occurrences
 * @param overrides - Custom mappings for specific values (default: {})
 * @returns Occurrence description or null for invalid input
 */
function times(value: number, overrides?: object): string | null;

Usage Examples:

const Humanize = require('humanize-plus');

// Special cases
console.log(Humanize.times(0)); // "never"
console.log(Humanize.times(1)); // "once"
console.log(Humanize.times(2)); // "twice"

// Regular numbers
console.log(Humanize.times(3)); // "3 times"
console.log(Humanize.times(12)); // "12 times"

// Custom overrides
console.log(Humanize.times(3, {3: 'thrice'})); // "thrice"
console.log(Humanize.times(12, {12: 'a dozen times'})); // "a dozen times"

// Invalid input
console.log(Humanize.times(-1)); // null
console.log(Humanize.times('invalid')); // null

Array Frequency Description

Describes how many times a verb occurred based on the length of an array.

/**
 * Describes how many times an item appears in a list
 * @param list - Array to count
 * @param verb - Action description
 * @returns Frequency description string or null for invalid input
 */
function frequency(list: any[], verb: string): string | null;

Usage Examples:

const Humanize = require('humanize-plus');

const photos = ['photo1.jpg', 'photo2.jpg', 'photo3.jpg'];
const emptyList = [];

console.log(Humanize.frequency(photos, 'took pictures')); // "took pictures 3 times"
console.log(Humanize.frequency(emptyList, 'took pictures')); // "never took pictures"

// Different verb forms
console.log(Humanize.frequency([1], 'appeared')); // "appeared once"
console.log(Humanize.frequency([1, 2], 'appeared')); // "appeared twice"

// Invalid input
console.log(Humanize.frequency('not an array', 'verb')); // null

docs

file-size.md

index.md

number-formatting.md

pluralization-lists.md

string-operations.md

utility-functions.md

tile.json