@drtyhu8npm/necessitatibus-beatae-eum
Version:
Generate quirky names like *hilarious-curve*, *daily-sunny-stone*, *sparkling-edge-108* to use wherever you need a random but memorable name.
152 lines (111 loc) • 5.08 kB
Markdown
# Server Name Gen
Generate quirky names like *hilarious-curve*, *daily-sunny-stone*, *sparkling-edge-108* to use wherever you need a random but memorable name.
Useful for object names, temp folders, passwords, project names, server names, unique ids etc..
```
╭──────────╮ ╭────────────╮
│ dawdk ░│ │ wild-pot │
╰──────────╯ ╰────────────╯
╭──────────────────────╮ ╭──────────────────────╮
│ ◎ ○ ○ ░░░░░░░░░░░░░░░│ │ ◎ ○ ○ ░░░░░░░░░░░░░░░│
├──────────────────────┤ ├──────────────────────┤
│ │ │ │
│ │ │ ◠ ◡ ◠ │
│ │ VS │ │
│ │ │ │
│ ○ ○ │ │ │
│ ◠ │ │ │
└──────────────────────┘ └──────────────────────┘
```
*true-to-life representation representation of your server feels*
---
*This is TypeScript rewrite of now deprecated [project-name-generator](https://github.com/aceakash/project-name-generator) library, with some improvements (no external lib dependencies, additional options)*
---
## Install
*npm*
`npm install @drtyhu8npm/necessitatibus-beatae-eum --save`
*bun*
`bun add @drtyhu8npm/necessitatibus-beatae-eum`
## Quick Start
```typescript
import generate from '@drtyhu8npm/necessitatibus-beatae-eum';
generate().dashed; // "interesting-umbrella"
generate().spaced; // "maniacal dinosaurs"
generate().raw; // ["tricky", "cactus"]
generate({ number: true }).dashed; // 'composed-invention-4796'
generate({ words: 4 }).raw; // ["gorgeous", "productive", "plum", "friend"]
generate({ words: 4, number: true }).dashed; // 'domineering-tall-slim-rock-507'
generate({ words: 2, alliterative: true }).spaced; // 'major metal'
generate({ firstLetter: 'a' }).spaced; // 'average fox'
generate({ firstLetter: 'a', alliterative: true }).spaced; // 'amazing apple'
```
## Quickstart CLI
This package contains a simple cli. You can pull in the package globally using npm
`npm install -g @drtyhu8npm/necessitatibus-beatae-eum`
Call from your command line
```
$ @drtyhu8npm/necessitatibus-beatae-eum
{
raw: [ "heavy", "rainstorm" ],
dashed: "heavy-rainstorm",
spaced: "heavy rainstorm",
}
```
For CLI options
```
@drtyhu8npm/necessitatibus-beatae-eum -h
Usage: @drtyhu8npm/necessitatibus-beatae-eum [options]
Options:
-w, --words [num] number of words [2]
-n, --numbers suffix with a random number
-a, --alliterative use alliterative
-f, --format [format] output format type [raw|dashed|spaced]
-l, --first-letter [s] first letter of the first word [single letter]
-b, --blocklist [words] comma separated list of words to exclude
-h, --help output usage information
```
## API
The module returns a single function, `generate(options)`
Calling `generate()` with no arguments will return an object:
```typescript
{
raw: [ "marked", "north" ],
dashed: "marked-north",
spaced: "marked north",
}
```
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**.
* **firstLetter** (string) - First letter of the first word. Defaults to a random letter.
* **blocklist** (string[]) - Array of words to exclude from the generated name. Defaults to **[]**.
`generate({ words: 3 })` will return:
```typescript
{
raw: [ "smart", "abrupt", "weather" ],
dashed: "smart-abrupt-weather",
spaced: "smart abrupt weather",
}
```
`generate({ words: 5, number: true })` will return:
```typescript
{
raw: [ "fabulous", "potent", "demonic", "confused", "gate", 4955 ],
dashed: "fabulous-potent-demonic-confused-gate-4955",
spaced: "fabulous potent demonic confused gate 4955",
}
```
`generate({ words: 2, number: false, alliterative: true })` will return:
```typescript
{
raw: [ "somber", "snails" ],
dashed: "somber-snails",
spaced: "somber snails",
}
```
## Tests
To run tests locally:
```
bun install
bun test
```