Comparing version 1.4.1 to 1.5.0
69
index.js
@@ -103,10 +103,12 @@ let fs = require('fs'); | ||
upload (filename, { shuffle = true } = {}) { | ||
let self = this; | ||
try { | ||
self.rset = require(filename); | ||
} catch (err) { | ||
return err; | ||
setup (data, { shuffle = true } = {}) { | ||
if (typeof(data) !== 'object') { | ||
return `Data passed to setup must be of type object, but ${typeof(data)} found`; | ||
} | ||
let allKeySets = []; | ||
let self = this, | ||
allKeySets = []; | ||
self.rset = data; | ||
for (let [spacename, space] of Object.entries(self.rset)) { | ||
@@ -123,10 +125,2 @@ let keys = Object.keys(space); | ||
if (shuffle) { | ||
for (let [key, space] of Object.entries(self.rset)) { | ||
for (let [key, arr] of Object.entries(space)) { | ||
NVRNG.shuffle(arr); | ||
} | ||
} | ||
} | ||
for (let i = 0; i < self.spaceLength - 1; i += 1) { | ||
@@ -150,5 +144,32 @@ if (allKeySets[i].length === 1 && allKeySets[i][0] === Genders.Any) { | ||
allKeySets = []; | ||
if (shuffle) { | ||
for (let [key, space] of Object.entries(self.rset)) { | ||
for (let [key, arr] of Object.entries(space)) { | ||
NVRNG.shuffle(arr); | ||
} | ||
} | ||
} | ||
return null; | ||
} | ||
upload (filename, { shuffle = true } = {}) { | ||
let self = this, | ||
data; | ||
try { | ||
data = require(filename); | ||
} catch (err) { | ||
return err; | ||
} | ||
let err = self.setup(data, { shuffle }); | ||
if (err) { | ||
return err; | ||
} | ||
return null; | ||
} | ||
getArrOfGender (space, gender) { | ||
@@ -228,4 +249,4 @@ let self = this, | ||
let limitter = self.limit, | ||
proGender = gender, | ||
joiner = NVRNG.getJoiner(noJoin), | ||
proGender = gender, | ||
joiner = NVRNG.getJoiner(noJoin), | ||
out, tstr, p, arr, index; | ||
@@ -236,3 +257,3 @@ do { | ||
[proGender, arr] = self.getArrOfGender(self.rset[space], proGender); | ||
index = NVRNG.randIntFromZero(arr.length); | ||
index = NVRNG.randIntFromZero(arr.length); | ||
p.push(formatter(arr[index])); | ||
@@ -247,6 +268,6 @@ } | ||
getSet (size, { gender = Genders.Any, output = OutputFormat.Set, include = new Set(), exclude = new Set(), delimiter = ' ', format = StringFormat.NoFormat, noJoin = false } = {}) { | ||
size = +size; | ||
if (isNaN(size) || size < 0) { | ||
return [`Bad "size" parameter`, null]; | ||
} | ||
size = +size; | ||
if (isNaN(size) || size < 0) { | ||
return [`Bad "size" parameter`, null]; | ||
} | ||
let self = this; | ||
@@ -275,4 +296,4 @@ if (gender !== Genders.Any) { | ||
limitter = self.limit, | ||
joiner = NVRNG.getJoiner(noJoin), | ||
proGender = gender, | ||
joiner = NVRNG.getJoiner(noJoin), | ||
proGender = gender, | ||
tstr, tmp, p, arr; | ||
@@ -279,0 +300,0 @@ do { |
{ | ||
"name": "nvrng", | ||
"version": "1.4.1", | ||
"version": "1.5.0", | ||
"description": "Not very random temporary name generator", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -51,2 +51,10 @@ [![Codecov Coverage](https://img.shields.io/codecov/c/github/ssypachev/nvrng/master.svg?style=flat-square)](https://codecov.io/gh/ssypachev/nvrng/) | ||
#### `setup(data, { shuffle = true }) => err` | ||
Setup vocabulary. Returns error. If everything is ok, then returns `null`; | ||
`data` - JSON object, the vocabulary | ||
`shuffle` - to shuffle vocabulary after upload | ||
#### `getSet(size, { gender = Genders.Any, output = OutputFormat.Set, include, exclude, delimiter = ' ', format = StringFormat.NoFormat, noJoin = false }) => [err, set]` | ||
@@ -53,0 +61,0 @@ Generate set of random names. Returns array. First element is error (`null` if ok), second is a set of names; |
Sorry, the diff of this file is not supported yet
29999
282
225