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

rad

v0.5.0

Published

a Rapid Application Development to quickly create fake datatypes for prototyping

Downloads

5

Readme

RAD

Prototyping utilities

RAD is a little utility to quickly build prototypes without worrying about having content. It contains a set of functions that output random strings and numbers

Installation

var rad = require('rad')
//node
define(['rad/index'],function(rad){})
//require.js

Basic Functions

Random

rad.random(min,max)

returns a whole number between min and max

rand.chance([percent=10])

produces a boolean that is true 'percent' times out of 100. Defaults to 10 (which means using rand.chance() yields 'true' one time out of ten)

rand.boolean()

is a shortcut to rand.chance(50)

rand.fromArray(array)

returns a random item from an array

Data

rad.letter() //returns 'a' or 'b' or 'c'...
rad.character() //returns the above, but also '%', '$', etc
rad.word() //returns, for example, 'lorem'
rad.sentence() //returns, for example, 'lorem ipsum dolores amet'
rad.paragraph //returns an html-formated paragraph
rad.month() //returns 'January', 'February'
rad.day() //returns 'Monday', 'Tuesday'
rad.digit() //returns 0,1,2,3

All these functions take the same signature:

fn(number)
//or
fn(min,max)

for example,

rad.letter(1)

could produce 'a'

rad.letter(2,4)

could produce 'gof' (a string of letters between 2 and 4)

rad.number([min[,max[,padded]]])

is the only one who has a third parameter; that parameter allows you to pad the number with zeros

Advanced Datatypes

Date

rad.date([startDate,[endDate],[format]])

returns a date between start date and end date If you don't specify an end date, end defaults to now; If you don't specify anything at all, it will select random date between unix epoch (1/1/1970) and now. (If you are looking to create a specific date, use the moment() object that is exposed, see below) If you specify both dates, you can specify a format. To know how to use format, follow the moment.js doc here: http://momentjs.com/docs/#/displaying/format/

Image

rad.image()
//or
rad.image('portrait',[width,[max]])
//or
rad.image('landscape',[height,[max]])
//or
rad.image(width)
//or
rad.image(0,height)
//or
rad.image(width,height)

will produce an image object (using placeholder.it). If you specify an orientation ('portrait' or 'landscape') and a max value, then the dimensions get randomized up to max. if you specify only one dimension (either because you're specifying the orientation or just setting one dimension), the remaining dimension will always be calculated according to golden ratio (1.6180) then floored. The returned object is as follow:

image = {
		width:width
	,	height:height
	,	src:'http://placehold.it/'+width+'/'+height
	,	alt:'random two words'
	,	html:'<img src="http://placehold.it/'+width+'/'+height+'" alt="'+alt+'" width="'+width+'" height="'+height+'"/>'
}

note: you can use 'p' and 'l' instead of 'portrait' and 'landscape'

two shortcuts for orientation exist:

rad.portrait([width,[max]])
rad.landscape([height,[max]])

Format

rad.format()

formats a string. Available keys are:

%w word
%l letter
%c character
%d digit
%s sentence
%p paragraph
%m month
%D day

each key can take an optional number; '%s3' would produce three sentences. Example:

rad.format('On %D %d2 of %m, user %w said:"%s"')
//On Thursday 63 of May, user aliquip said:"Accusamus eu assumenda et distinctio officia nisi in."

rad.format('"%c" and "%c" are each 1 character long, whereas "%l4" is four characters long')
//"q" and "3" are each 1 character long, whereas "gdrn" is four characters long

Utilities

Weighted random

rand.weighted(obj)

returns a random key from an object that has weight. Given the object:

{
	cats:8
,	dog:2
}

'cats' has 4 times as much chances to be selected. Your weights don't have to add up to ten or a hundred or anything

Array of random items

rand.createArray(function|array of functions,from,to[,vars])

creates an array of random size between 'from' and 'to' and fills it with the results of 'function' if you pass in an array of functions, it will select one randomly on each pass the 'vars', if provided, are passed to the functions

Exposed Properties

Options

you can change the alphabet, the months name's, etc, on the

rad.vars

object. Check the source.

Helpers

RAD exposes it's two helpers

rad.moment()

returns a moment.js object. Learn to use it at http://momentjs.com/docs

rad.lorem()

is a shortcut to the lorem.ipsum() found in https://github.com/shyiko/lorem/

Tests

Since it's all random, there is always a slight margin in which tests might fail, so try running them again