# project-name-generator

> Generate a random, unique, heroku-like name for your app/project/server etc. e.g. "resonant-silence"

Latest version **2.1.9** (published 2020-10-04) · ISC license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install project-name-generator
pnpm add project-name-generator
yarn add project-name-generator
bun add project-name-generator
```

Provides the command `project-name-generator`.

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 2.1.9 |
| Published | 2020-10-04 |
| First published | 2014-11-17 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | separate (@types/project-name-generator) |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 37.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Akash Kurdekar |
| Maintainers | aceakash |
| Keywords | heroku, project, server, app, name, generate, unique, random, generator, generater |

## Links

- npm: https://www.npmjs.com/package/project-name-generator
- Repository: https://github.com/aceakash/project-name-generator
- Homepage: https://github.com/aceakash/project-name-generator#readme
- Issues: https://github.com/aceakash/project-name-generator/issues
- npm.io page: https://npm.io/package/project-name-generator

## Dependencies (2)

- [lodash](https://npm.io/package/lodash.md) ^4.17.20
- [commander](https://npm.io/package/commander.md) ^6.1.0

## Alternatives

- [base64url](https://npm.io/package/base64url.md) — 6.1M weekly downloads
- [get-installed-path](https://npm.io/package/get-installed-path.md) — 502.9K weekly downloads
- [@uppy/url](https://npm.io/package/@uppy/url.md) — 185.8K weekly downloads
- [@d3fc/d3fc-shape](https://npm.io/package/@d3fc/d3fc-shape.md) — 16.2K weekly downloads
- [localizer](https://npm.io/package/localizer.md) — 226 weekly downloads

## Recent versions

- 2.1.9 (latest) — 2020-10-04
- 2.1.8 — 2020-10-04
- 2.1.7 — 2019-05-14
- 2.1.6 — 2019-01-21
- 2.1.5 — 2018-05-10
- 2.1.4 — 2017-10-03
- 2.1.3 — 2016-08-11
- 2.1.2 — 2015-11-28
- 2.1.1 — 2015-04-28
- 2.1.0 — 2015-03-23
- 2.0.0 — 2015-02-17
- 1.0.0 — 2014-11-17

## README

# Project Name Generator

Generate quirky names like *spiffy-waterfall*, *sassy-bread*, *mature-dew-8239* to use wherever you need a random but memorable name.

Useful for object names, temp folders, passwords, project names, unique ids etc

## Install
`npm install project-name-generator --save`

## Quick Start
```javascript
var generate = require('project-name-generator');

generate().dashed; // 'uptight-guitar'

generate().spaced; // 'grandiose clam'

generate().raw; // ['deluxe', 'grandmother']

generate({ number: true }).dashed; // 'disgraceful-temper-7794'

generate({ words: 4 }).raw; // ['tiny', 'crabby', 'wired', 'quicksand']

generate({ words: 4, number: true }).dashed; // 'breakable-judicious-luxuriant-tax-3931'

generate({ words: 2, alliterative: true }).spaced; // 'elegant experience'

```

## Quickstart CLI
This package contains a cli script.  You can pull in the package globally using npm
`npm install -g project-name-generator`

Call from your command line
```
$ project-name-generator
{ raw: [ 'spry', 'bath' ],
  dashed: 'spry-bath',
  spaced: 'spry bath' }
```

For CLI options 
```
project-name-generator -h

Usage: project-name-generator [options]


Options:

  -V, --version          output the version number
  -w, --words [num]      number of words [2]
  -n, --numbers          use numbers
  -a, --alliterative     use alliterative
  -o, --output [output]  output type [raw|dashed|spaced]
  -h, --help             output usage information
```

## API
The module returns a single function, `generate(options)`

Calling `generate()` with no arguments will return an object:
```javascript
{
    raw: ['whispering', 'valley'],
    dashed: 'whispering-valley',
    spaced: 'whispering valley'
}
```

The `options` argument object can have properties

* **words** (number) - Number of words generated (excluding number). All words will be adjectives, except the last one which will be a noun. Defaults to **2**.
* **number** (boolean) - Whether a numeric suffix is generated or not. The number is between 1 - 9999, both inclusive. Defaults to **false**.
* **alliterative** (boolean) - Whether to output words beginning with the same letter or not. Defaults to **false**.

`generate({ words: 3 })` will return:
```javascript
{
    raw: ['harmonious', 'endurable', 'substance'],
    dashed: 'harmonious-endurable-substance',
    spaced: 'harmonious endurable substance'
}
```

`generate({ words: 5, number: true })` will return:
```javascript
{
  raw: [ 'exciting', 'cooperative', 'legal', 'lackadaisical', 'blood', 4099 ],
  dashed: 'exciting-cooperative-legal-lackadaisical-blood-4099',
  spaced: 'exciting cooperative legal lackadaisical blood 4099'
}
```

`generate({ words: 2, number: false, alliterative: true })` will return:
```javascript
{
  raw: [ 'elegant', 'experience' ],
  dashed: 'elegant-experience',
  spaced: 'elegant experience'
}
```

## Tests
To run tests locally:
```
npm install

npm test
```

The library has been tested with Node.js 12.18.4

## Status
![How up-to-date are dependencies?](https://david-dm.org/aceakash/project-name-generator.svg)

---
_Source: https://npm.io/package/project-name-generator · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
