UNPKG

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
# structed-garbage Garbage and test data generator with no dependencies that can generate random objects and arrays by defined structure. ## Install You can install this module by npm: ``` npm install structed-garbage ``` ## Usage Firstly load module: ``` var garbage = require('structed-garbage'); ``` Then you can use generator methods: ### struct 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'} } } } }); ``` ### array 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' // } // } ``` ### object 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} ``` ### char Returns single character. ``` garbage.char(); ``` ### string 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}); ``` ### int Returns random integer. Params: * min - min value (default: 0) * max - max value (default: 500) ``` garbage.string({min: -100, max: 500}); ``` ### bool Returns random bool. ``` garbage.bool(); ``` ### float Returns random float from 0 to 1. ``` garbage.float(); ``` ### key 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 ``` ### element 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 ``` ### collocation Returns random string with collocation. ``` garbage.collocation(); // returns something like: "propitious filling station attendant" ``` ### name, firstName, lastName 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" ``` ### email Returns random string with email. ``` garbage.email(); // returns something like: "Nataline@jorja344cc.tk" ``` ### phone 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" ``` ### site Returns random string with site domain. ``` garbage.site(); // returns something like: "framemail.cf" ``` ### error 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}); ``` ### date Returns random date object. Params: * min - min timestamp (default: 0) * max - max timestamp (default: Date.now()) ``` garbage.date(); ``` ### imagePicsum 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}); ``` ### imageLorempixel 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}); ``` ### text 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}); ```