npm package: @nebulaai/name-generator
Description: Simple name generation for startup ideas, branding, and ideation
Author: Jorge Gonzalez
Latest version: 0.1.0

# 🎭 generate-name

**Create memorable names that don't suck. Deterministic randomness meets creative genius.**

*Name generation wizardry from the NebulaAI creative suite*

---

## ⚡ Get Started (Be creative in 30 seconds)

```bash
npm install @nebulaai/generate-name
```

## 🔥 Watch names come alive

```typescript
import { generateName } from "@nebulaai/generate-name";

const adjectives = ["Swift", "Mighty", "Clever", "Bold", "Sleek"];
const nouns = ["Tiger", "Phoenix", "Storm", "Blade", "Code"];

// Generate epic project names
generateName("React", adjectives, nouns);
// → "SwiftReactPhoenix" (same result every time with same seed)

// Spaced out for readability
generateName("API", adjectives, nouns, { separator: " " });
// → "Mighty API Storm"

// Snake case for variables
generateName("user", adjectives, nouns, { separator: "_" });
// → "Bold_User_Blade"

// Kebab case for URLs
generateName("dashboard", adjectives, nouns, { separator: "-" });
// → "Clever-Dashboard-Code"

// Custom seed for reproducible results
generateName("bot", adjectives, nouns, { seed: "myapp2024" });
// → Always the same name for this seed combo
```

## 🚀 Why creative devs love this

- **Deterministic magic**: Same inputs = same outputs (perfect for testing)
- **Seeded randomness**: Control the chaos with custom seeds
- **Format freedom**: Any separator you want, or none at all
- **Memory-friendly**: No storage needed, regenerate anytime
- **TypeScript native**: Full type safety and IntelliSense
- **Collision resistant**: Massive combination space

## 🛠️ API That Inspires

```typescript
generateName(
  seedWord: string,
  adjectives: string[],
  nouns: string[],
  options?: NameGenOptions
): string
```

| Parameter | Type | What it does | Example |
|-----------|------|--------------|---------|
| `seedWord` | `string` | The core word (your brand/concept) | `"React"`, `"API"`, `"Bot"` |
| `adjectives` | `string[]` | Descriptive words pool | `["Swift", "Mighty"]` |
| `nouns` | `string[]` | Object/concept words pool | `["Tiger", "Code"]` |
| `options.seed` | `string \| number` | Custom randomness seed | `"v2.1"`, `42` |
| `options.separator` | `"" \| "-" \| "_" \| " "` | How to join words | Default: `""` |

**Magic formula:** `{Adjective}{Separator}{SeedWord}{Separator}{Noun}`

---

## 🎯 Perfect for

- **Project codenames** → "SwiftDashboardPhoenix" beats "Project-2024-Q3"
- **Docker containers** → Memorable names instead of random UUIDs  
- **Game entities** → "BoldWarriorBlade" > "Entity_847392"
- **API versions** → "CleverDataStorm" sounds way cooler than "v2.3"
- **Test fixtures** → Consistent, readable test data
- **Team names** → "MightyReactTiger" for your dev squad

## 💡 Pro strategies

```typescript
// Theme-based pools for different vibes
const techAdjectives = ["Digital", "Smart", "Fast", "Secure"];
const techNouns = ["Engine", "Framework", "Protocol", "System"];

const fantasyAdjectives = ["Mystic", "Ancient", "Legendary", "Sacred"];  
const fantasyNouns = ["Dragon", "Wizard", "Crystal", "Realm"];

// Reproducible names for environments
const prodName = generateName("api", adjectives, nouns, { 
  seed: "production",
  separator: "-" 
});

// Dynamic pools from your data
const userAdjectives = userData.favoriteTraits;
const generateUserHandle = () => generateName(
  userName, 
  userAdjectives, 
  coolNouns
);
```

## 🔮 Advanced patterns

```typescript
// Multi-environment naming
const environments = ["dev", "staging", "prod"];
const serviceNames = environments.map(env => 
  generateName("auth", adjectives, nouns, { seed: env })
);

// Consistent team assignments  
const getTeamName = (memberId: string) => 
  generateName("squad", teamAdjectives, teamNouns, { seed: memberId });

// Version-specific names
const releaseNames = versions.map(v => 
  generateName("release", adjectives, nouns, { seed: v })
);
```

## ⚠️ Edge case handling

```typescript
// Empty arrays? We got you covered
try {
  generateName("test", [], nouns);  // Throws helpful error
} catch (e) {
  console.log("Need some adjectives to work with!");
}
```

---

## 📄 License

MIT © Jorge Gonzalez / Temporal AI Technologies Inc.

*Turning boring naming into creative expression*