generators

Generators

A collection of minimal, dependency-free generators for developers, testers, and AI builders.

Overview

Generators provides fast, auditable modules for creating random or structured content — passwords, fake data, prompts, datasets, colors, and more — without large dependencies or opaque APIs. Each module is designed for portability, reproducibility, and simplicity.

Available modules:

All helpers are designed for use in:

Each module has its own README.md, tests, and can be imported individually.

🔗 Live Demos (GitHub Pages)

You can try each generator interactively in your browser:

Each page loads its respective module and allows interactive validation.

Install

npm i @yvancg/generators # or per-module packages when published

API Guarantees

Design Principles

  1. Deterministic randomness: Supports fixed seeds for reproducibility.
  2. Zero dependencies: Small and secure.
  3. Cross-runtime: Runs anywhere ESM works.
  4. Predictable output: Always valid and formatted.
  5. Composable: Each generator is a pure function.

Example Usage

import { generateAvatar } from './generate-avatar/avatar.js';
import { generateCard } from './card.js';
import { generatePalette } from './generate-color/color.js';
import { generateDataset } from './generate-dataset/dataset.js';
import { rows, user } from './generate-fake-data/fake.js';
import { generateHash } from './generate-hash/hash.js';
import { generateLorem } from './generate-lorem/lorem.js';
import { generatePassword } from './generate-password/password.js';
import { generatePrompt } from './generate-prompt/prompt.js';
import { generateToken } from './generate-token/token.js';

console.log(generateAvatar({ text: 'AI', size: 128, seed: 'demo' }));
// → '<svg width="128" height="128" ...>…</svg>'

console.log(generateCard({ brand: 'visa' }));
// → { number: '4111111111111111', brand: 'visa', expiry: '08/28', cvc: '123' }

console.log(generatePalette({ base: '#3366ff', scheme: 'triadic', count: 5 }));
// → { base: '#3366ff', scheme: 'triadic', colors: ['#3366ff','#ff33cc','#33ff66'], textOnBase: '#ffffff' }

console.log(generateDataset({ count: 3, format: 'jsonl', seed: 'demo' }));
// → '{"id":"...","text":"Lorem ipsum ..."}'

console.log(rows(3, 42));
// → array of 3 fake user objects (deterministic)

console.log(user());
// → { id: "u_123456", name: "Ava Johnson", ... }

console.log(await generateHash('hello world', 'sha-256'));
// → 'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9'

console.log(generateLorem({ units: 'sentences', count: 2 }));
// → 'Lorem ipsum dolor sit amet consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'

console.log(generatePassword({ length: 16, symbols: true }));
// → 'fP8!cN9^hK2@xQ4?'

console.log(generatePrompt('text', 'Write a {tone} tweet about {topic}', { tone: 'funny', topic: 'AI startups' }));
// → "Write a funny tweet about AI startups"

console.log(generateToken({ type: 'hex', length: 32 }));
// → 'b1f94e1d28a2ef3e3a6f0b8e7e9cc041'

Folder Structure

generators/
  ├─ .github/
  │   ├─ workflows/
  │   └─ FUNDING.yml
  ├─ LICENSE
  ├─ README.md
  ├─ SECURITY.md
  ├─ package.json
  ├─ scripts/
  │   └─ bench.mjs
  ├─ generate-avatar/
  ├─ generate-card-number/
  ├─ generate-color/
  ├─ generate-fake-data/
  ├─ generate-hash/
  ├─ generate-lorem/
  ├─ generate-password/
  ├─ generate-prompt/
  └─ generate-token/

Security Notes

Contributing

Pull requests for additional safe validators (e.g., IBAN, domain names, etc.) are welcome. Please maintain the following rules:

License

Licensed under the MIT License — see LICENSE.

Funding

If you find this project useful, please consider sponsoring its continued maintenance and security audits.

You can sponsor this project through:


© 2025 Y Consulting LLC / Validators Project