A simple utility library for making the web more humane with functions for formatting numbers, strings, arrays, and file sizes.
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
Functions for handling pluralization, converting arrays to readable strings, and describing occurrences.
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)); // nullConverts 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"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')); // nullDescribes 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