or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

file-size.mdindex.mdnumber-formatting.mdpluralization-lists.mdstring-operations.mdutility-functions.md
tile.json

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