|
|
@ -7,11 +7,11 @@ |
|
|
|
, animals = [] |
|
|
|
, adjectives = [] |
|
|
|
, numbers = [] |
|
|
|
; |
|
|
|
; |
|
|
|
|
|
|
|
function genNumbers() { |
|
|
|
var i = 2 |
|
|
|
; |
|
|
|
; |
|
|
|
|
|
|
|
numbers = []; |
|
|
|
numbers.push(0); |
|
|
@ -23,7 +23,7 @@ |
|
|
|
return shuffle(numbers); |
|
|
|
} |
|
|
|
|
|
|
|
function random() { |
|
|
|
function populate() { |
|
|
|
if (!adjectives.length) { |
|
|
|
adjectives = shuffle(lists.adjectives.slice(0)); |
|
|
|
} |
|
|
@ -33,14 +33,40 @@ |
|
|
|
if (!numbers.length) { |
|
|
|
numbers = shuffle(genNumbers()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function random() { |
|
|
|
populate(); |
|
|
|
return adjectives.pop() |
|
|
|
+ '-' + animals.pop() |
|
|
|
+ '-' + numbers.pop() |
|
|
|
; |
|
|
|
} |
|
|
|
|
|
|
|
exports.humanReadableIds = { random: random }; |
|
|
|
// Accepts a format as a stirng of 'a' for adjective, 'n' for noun, and '#' for number
|
|
|
|
function get(format) { |
|
|
|
populate(); |
|
|
|
let hri = []; |
|
|
|
for (let item of format) { |
|
|
|
switch (item) { |
|
|
|
case 'a': |
|
|
|
hri.push(adjectives.pop()); |
|
|
|
break; |
|
|
|
case 'n': |
|
|
|
hri.push(animals.pop()); |
|
|
|
break; |
|
|
|
case '#': |
|
|
|
hri.push(numbers.pop()); |
|
|
|
break; |
|
|
|
default: |
|
|
|
throw 'Unexpected value ' + item + '. Expected a,n,#'; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return hri.join('-'); |
|
|
|
} |
|
|
|
|
|
|
|
exports.humanReadableIds = {random: random, get: get}; |
|
|
|
exports.hri = exports.humanReadableIds; |
|
|
|
|
|
|
|
}('undefined' !== typeof exports && exports || new Function('return this')())); |
|
|
|