structed-garbage
Version:
Garbage and test data generator with no dependencies that can generate random objects and arrays by defined structure
334 lines (209 loc) • 6.02 kB
Markdown
Garbage and test data generator with no dependencies that can generate random objects and arrays by defined structure.
You can install this module by npm:
```
npm install structed-garbage
```
Firstly load module:
```
var garbage = require('structed-garbage');
```
Then you can use generator methods:
Generates random data with defined structure.
Structure leafs must be defined as object: { generator: %generator-type%, params: %generator-argument% }. They will be replaced with results of random generators (they are described below).
This example generates object by defined structure:
```
garbage.struct({
name: {generator: 'name'},
birth: {generator: 'date'},
staticValue: 'some text for example',
staticValueMethod: {generator: 'value', params: {foo: 1, bar: 2, baz: 3}},
likesCount: {generator: 'int', params: {min: 0, max: 10}},
posts: [
{
title: {generator: 'collocation'},
text: {generator: 'string'},
image: {generator: 'imagePicsum', params: {width: 100, height: 100}},
created: {generator: 'date'},
},
{
title: {generator: 'collocation'},
text: {generator: 'string'},
image: {generator: 'imageLorempixel'},
created: {generator: 'date'},
},
],
comments: {
generator: 'array',
params: {
min: 0,
max: 3,
struct: {
text: { generator: 'string' },
date: { generator: 'date'}
}
}
}
});
```
Returns random filled array. Params:
* len - fixed length of the array
* max - max length of the array
* min - min length of the array
* struct - structure of array element
This code generates array with 3 elements, that generated by different random generators (they are described below):
```
garbage.array({len: 3})
```
This example generates array with length from 0 to 5 with defined structure:
```
garbage.array({
min: 0,
max: 5,
struct: {
name: { generator: 'name' },
phone: { generator: 'phone'},
something: { generator: 'object' }
}
});
// elements of this array will be something like this:
// {
// name: 'Emmalynne Gabriele',
// phone: '+45084705071',
// something: {
// '+4QV*$51fIwDkG5lM': 'Karyn@lgxscreen.com',
// 'Mz|uWppr8Oj}+s`ZK': 'http://lorempixel.com/200/300'
// }
// }
```
Returns random filled object. Params:
* len - fixed number of properties
* max - max number of properties
* min - min number of properties
* struct - structure of element
This code generates object with 3 properties, that generated by different random generators (they are described below):
```
garbage.object({len: 3});
```
Object keys will be generated by string() method.
### value
Just returns defined static value. May be useful in struct method.
```
garbage.value({foo: 1, bar: 2, baz: 3});
// expected: {foo: 1, bar: 2, baz: 3}
```
Returns single character.
```
garbage.char();
```
Returns random string. Params:
* min - min size of string (default: 2)
* max - max size of string (default: 20)
* len - fixed length of the string
```
garbage.string({min: 10, max: 50});
```
Returns random integer. Params:
* min - min value (default: 0)
* max - max value (default: 500)
```
garbage.string({min: -100, max: 500});
```
Returns random bool.
```
garbage.bool();
```
Returns random float from 0 to 1.
```
garbage.float();
```
Returns random key of the object or array defined as argument.
```
garbage.key({foo: 1, bar: 2, baz: 3}); // may be foo, bar or baz
garbage.key(['foo', 'bar', 'baz']); // may be 0, 1 or 2
```
Returns random element of the object or array defined as argument.
```
garbage.element({foo: 1, bar: 2, baz: 3}); // may be 1, 2 or 3
garbage.element(['foo', 'bar', 'baz']); // may be foo, bar or baz
```
Returns random string with collocation.
```
garbage.collocation();
// returns something like: "propitious filling station attendant"
```
Returns random string with first and/or last name.
```
garbage.name(); // returns something like: "Ariella Dal"
garbage.firstName(); // returns something like: "Rosalinda"
garbage.lastName(); // returns something like: "Ripley"
```
Returns random string with email.
```
garbage.email();
// returns something like: "Nataline@jorja344cc.tk"
```
Returns random string with something like phone number. Params:
* len - length of the phone string without + at the start (default: 10)
```
garbage.phone();
// returns something like: "+05566393145"
```
Returns random string with site domain.
```
garbage.site();
// returns something like: "framemail.cf"
```
Returns random error object. Params:
* min - min length in words of the text (default: 2)
* max - max length in words of the text (default: 5)
```
garbage.error({min: 1, max: 7});
```
Returns random date object. Params:
* min - min timestamp (default: 0)
* max - max timestamp (default: Date.now())
```
garbage.date();
```
Returns random image url from picsum.photos. Params:
* heigth - heigth of the image (default: 200)
* width - width of the image (default: 300)
```
garbage.imagePicsum({width: 100, height: 150});
```
Returns random image url from lorempixel.com. Params:
* heigth - heigth of the image (default: 200)
* width - width of the image (default: 300)
```
garbage.imageLorempixel({width: 100, height: 150});
```
Returns random text (lorem ipsum). Params:
* min - min length in words of the text (default: 1)
* max - max length in words of the text (default: end of lorem ipsum text)
* len - fixed length of the text in words
```
garbage.text({len: 10});
```