@looop/pluralize
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

Pluralize

NPM version NPM downloads Build status Test coverage File Size CDNJS

Pluralize and singularize any word.

This was forked from https://github.com/plurals/pluralize. It was refactored into TS and there is now a build step added. Everything else remains the same.

Installation

npm install pluralize --save
yarn add pluralize

Node (ES2015 Module)

import pluralize from 'pluralize';

Node

const pluralize = require('pluralize');

AMD

define(function (require, exports, module) {
  const pluralize = require('pluralize');
});

<script> tag

<script src="pluralize.js"></script>

Why?

This module uses a pre-defined 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

/@looop/pluralize/

    Package Sidebar

    Install

    npm i @looop/pluralize

    Weekly Downloads

    259

    Version

    1.0.4

    License

    MIT

    Unpacked Size

    131 kB

    Total Files

    14

    Last publish

    Collaborators

    • jiri-looop
    • lukassvihel
    • capaj
    • edtsech
    • misticek