Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

pluralize-esm

sanity-io655.4kMIT9.0.5TypeScript support: included

Pluralize and singularize any word

plural, plurals, pluralize, singular, singularize, inflection

readme

Pluralize

NPM version NPM downloads Build Status GitHub Super-Linter File Size

Pluralize and singularize any word. A fork of pluralize

Installation

npm install pluralize-esm

Node.js

var pluralize = require('pluralize-esm')

ESM

import pluralize from 'pluralize-esm'

Why?

This module uses a predefined list of rules, applied in order, to singularize or pluralize a given word. There are many cases where this is useful, such as any automation based on user input. For applications where the word(s) are known ahead of time, you can use a simple ternary (or function) which would be a much lighter alternative.

Usage

  • word: string The word to pluralize
  • count: number How many of the word exist
  • inclusive: boolean Whether to prefix with the number (e.g. 3 ducks)

Examples:

pluralize('test') //=> "tests"
pluralize('test', 0) //=> "tests"
pluralize('test', 1) //=> "test"
pluralize('test', 5) //=> "tests"
pluralize('test', 1, true) //=> "1 test"
pluralize('test', 5, true) //=> "5 tests"
pluralize('蘋果', 2, true) //=> "2 蘋果"

// Example of new plural rule:
pluralize.plural('regex') //=> "regexes"
pluralize.addPluralRule(/gex$/i, 'gexii')
pluralize.plural('regex') //=> "regexii"

// Example of new singular rule:
pluralize.singular('singles') //=> "single"
pluralize.addSingularRule(/singles$/i, 'singular')
pluralize.singular('singles') //=> "singular"

// Example of new irregular rule, e.g. "I" -> "we":
pluralize.plural('irregular') //=> "irregulars"
pluralize.addIrregularRule('irregular', 'regular')
pluralize.plural('irregular') //=> "regular"

// Example of uncountable rule (rules without singular/plural in context):
pluralize.plural('paper') //=> "papers"
pluralize.addUncountableRule('paper')
pluralize.plural('paper') //=> "paper"

// Example of asking whether a word looks singular or plural:
pluralize.isPlural('test') //=> false
pluralize.isSingular('test') //=> true

License

MIT

changelog

📓 Changelog

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

9.0.5 (2023-01-20)

Bug Fixes

9.0.4 (2022-12-02)

Bug Fixes

9.0.3 (2022-09-27)

Bug Fixes

  • use new semantic release preset (1491d8a)

9.0.2 (2022-06-09)

Bug Fixes

9.0.1 (2022-06-09)

Bug Fixes