npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

randopeep

v1.1.6

Published

Generate random fake data, in javascript, based on data files & functions

Downloads

102

Readme

Rando Peeps Data

Greenkeeper badge

Originally I made this for generating fake NPCs for RPGs & fake accounts for things online.

Peeps

NPM Build Status Demo

What random stuff can it generate?

All parameters are optional.

n parameters is how many you would like, leave blank for 1.

People

  • randopeep.name(params, n) - a person's name, params are explained below
  • randopeep.job(n) - a job a person might do
  • randopeep.invention(n) - a seemingly awesome-sounding invention

params

A lot of different types of names can be generated. All parameters are optional, here are the defaults:

{
	'origin' : random - 'chinese', 'elven/dark', 'dwarven','elven', 'english', 'germanic','japanese','orcish','spanish','netrunner',
	'gender': random - 'male','female',
	'last': true,
	'justLast': false,
	'prefix': random - true, false,
	'returnData': false,
}
  • origin - the place/time the names come from
  • gender - male/female, if names are gendered
  • last - get a lastname?
  • justLast - get lastname only?
  • prefix - look up gendered prefix, if applicable
  • returnData - return options (as generated) with name field, good if you want random gender/origin, but want to know about it after

If you set any of them to an array, it will pick a random element.

Places

  • randopeep.address.state(n) - a US state
  • randopeep.address.state.a(n) - an abbreviated US state
  • randopeep.address.zip(n) - a zipcode
  • randopeep.address.city(n) - a pretend city
  • randopeep.address.geo(n) - a geolocation
  • randopeep.address.streetName(n) - a streetName
  • randopeep.address.streetAddress(useFullAddress, n) - a street address, set useFullAddress to get secondary address
  • randopeep.address.phone(n) - a phone number
  • randopeep.address.uk.country(n) - a country in the UK
  • randopeep.address.uk.county(n) - a county in the UK

Credit-card Numbers

  • randopeep.cc(type, charCount, n) - a credit-card, type is "visa", "mastercard", "amex", or "discover". charCount should be 13 or 16

Corporate Things

  • randopeep.corporate.name(type, n) - a corporate name, type is explained below
  • randopeep.corporate.catchPhrase(n) - n corporate catchphrases
  • randopeep.corporate.bs(n) - n lines of corporate BS

type

It can be one of these:

  • cyber - a company from the retrofuture
  • firm - a law-firm, all last names are random non-fantasy, but from the same origin
  • small - a small company
  • large - a large corp

Internet Things

  • randopeep.internet.ip(n) - an IP address
  • randopeep.internet.domain(derived, n) - a internet domainname, derived is explained, below
  • randopeep.internet.email(derived, n) - an email address, derived is explained, below
  • randopeep.internet.username(derived, n) - an internet username, derived is explained, below

derived

Will attempt to use the text that you give it as a base for generating other things. Makes more-legit looking email, if you already know the name, for example.

Random Text

  • randopeep.ipsum(n, list) - n words from ipsum list, default list is "lorem" and default count is 200

Clickbait

  • randopeep.clickbait.headline(star, n) - a clickbait headline, star is the optional name of a star for the headline to be about
  • randopeep.clickbait.star(n) - a star from a headline

Other stuff

  • randopeep.data - the raw data, keyed by list name
  • randopeep.get(list, n) - n items from list

Usage

See unit-tests in test/test.js if you need more details.

Node

Install: npm install randopeep

in your code:

const randopeep = require('randopeep')
const myFakeName = randopeep.name()

Browser

Just include randopeep.js in your thing, and use it like normal:

<script src="http://konsumer.js.org/randopeep/randopeep.js"></script>
<script>
  document.body.innerHTML = "I'm cool dude named " + randopeep.name({gender:'male'})
</script>

There is also support for AMD/require.js, just put out/randopeep.js in your application dir, and do this:

define(['randopeep'], function(randopeep){
  document.body.innerHTML = "I'm cool lady named " + randopeep.name({gender:'female'})
})

Adding your own name-libraries

You can add your own, if you install dev-tools with npm install then add whatever you want to data/ dir, and run npm run build.

Format is 1 item per line.

Using name-libraries

Let's pretend some of the built-in wordlist libraries don't have the randopeep.name() convenience function, and load the libraries, directly:

const myLeetName = randopeep.get('name/english/female/first') + ' ' + randopeep.get('name/netrunner/first')

or even use formatting to make the code a bit neater:

const myLeetName = randopeep.format('{0} {1}',
  randopeep.get('name/chinese/male/first'),
  randopeep.get('name/netrunner/first')
)

Testing

You can run my CLI tests with npm test or open test/index.html to run same tests, in-browser.

TODO

  • use the GURPS class-data
  • ipsum could be smarter with English, so it can assemble seemingly sensical text.
  • use some packetstorm wordlists to generate more stuff
  • setup JSONP/REST wordlist service, so none of this needs dictionaries to be local
  • add support for specific types of clickbait headlines, like "tech": "X has a serious flaw, that will probably crash the internet"
  • Look at chance.js for inspiration

Credits

  • see data credits for info about where a lot of this stuff came from.