_______ _______ _______ _ ______ _______ _________ _______ ( )( ___ )( ____ \| \ /\( __ \ ( ___ )\__ __/( ___ ) | () () || ( ) || ( \/| \ / /| ( \ )| ( ) | ) ( | ( ) | | || || || | | || | | (_/ / | | ) || (___) | | | | (___) | | |(_)| || | | || | | _ ( | | | || ___ | | | | ___ | | | | || | | || | | ( \ \ | | ) || ( ) | | | | ( ) | | ) ( || (___) || (____/\| / \ \| (__/ )| ) ( | | | | ) ( | |/ \|(_______)(_______/|_/ \/(______/ |/ \| )_( |/ \| Generate random data(integer, date, ipv4, etc...) With options(range, count, format, etc...) Support callback and stream.
Documentation
I'm still working on this project, a full documentation is coming soon.
Installation
$ sudo npm install --save mock-data
Usage
var mock = ;
Get data models first:
var rStr = mockstring // random string rInt = mockinteger // random integer rIpv4 = mockipv4 // random ipv4 rDate = mockdate // random date......
Get instances from models:
var strGen = intGen = ipv4Gen = dateGen = ......
You can set parameters upon construct, or set them later using params()
method:
var strGen = // minLength, maxLength, include intGen = // start, end ipv4Gen = // format dateGen = // start, end, isUTC, format...... strGen;intGen;ipv4Gen;dateGen;...... strGen;intGen;ipv4Gen;dateGen;......
If you don't do this, it will use default settings.
Now you can generate data, one at a time, return an array or using callback:
var ret = dateGen; // 1989-09 var ret = dateGen; // [1989-09, 1992-07, ...] dateGen;
Alternatively, a preferable way to generate data is using mock.generate()
.
You can get the data from either callback or stream.
Callback example
generate integer in given range:
mock;
generate date in given format:
mock;
......
Stream example
generate integer:
var generator = mock; generator;generator;generator;
generate date:
var generator = mock; generator;generator;generator;
......
API
Default date type is string, default count is 10000.
mock
Supported data types
For now, it supports string
, integer
, date
, ipv4
and boolean
.
String
Specify length range and charset to generate string :
params: minLength: default 16 maxLength: default 32 include : default "aA#!"
The generated random string will have a length between in [minLength
, maxLength
], include
sets which charset to include:
'a': "abcdefghijklmnopqrstuvwxyz" a-z'A': "ABCDEFGHIJKLMNOPQRSTUVWXYZ" A-Z'#': "0123456789" 0-9"!": ^a-zA-Z0-9
For example, include
with value "a#" will generate strings like this:
"nob21hcdtv9n93ixqhz8nsuw7grdp4brszr4g8tyka66pjtjlh""y1a6xuhhgsopbqnb8wqjtx920zmnbgg7u4kw07u3gullm38t6sg""5hy4lm78jdq2zqmo3px11r8aubi3kgs7t2blwdzb6f1yogihac""6msnskfdf6eyslnm9empq0g4nelf7p6z4qfpdsjuvsqztbpe58pwg""vp8uoru82x9eb5pg7umq1v3d4wqrm9cfzshvxcx02vcrebh42o""......"
Integer
Specify a range to generate integer:
params: start: default NumberMIN_SAFE_INTEGER end: default NumberMAX_SAFE_INTEGER
Date
You can generate all the formats you want, some examples:
"MMMM/DD/YYYY HH-mm-ss a" // "May/27/1989 11-59-34 am""YYYY-MM-DD HH:mm" // "1989-05-27 11:59""MM DD YYYY HH:mm:ss" // "05 27 1989 11:59:34""......"
params: start: default 1980 end: default 2015 format: default ISO-8601 format isUTC: default false
If you don't specify the format, it will generate dates like this:
"1988-10-05T20:05:15-07:00""2014-11-14T15:59:50-08:00""1997-03-23T17:52:09-08:00""1992-10-29T12:19:32-08:00""......"
Ipv4
To generate a specific range of ip addresses, you need to pass in format containing '*' :
For example, "192.168.*.*"
will generate ip addresses in class C:
"192.168.192.206""192.168.161.196""192.168.9.135""192.168.223.172""192.168.31.215""......"
params: format: default "*.*.*.*"
Boolean
Specify the odds for generating true
, otherwise it will be 50/50;
params: trueOdds: default 05
Test
$ npm test