Highly customizable generator of random strings.
require it
add script on page
as well you can do it with RequireJS or any similar tool.
Instead of array you can pass all template arguments as function arguments:
There is another option to pass arguments to the template, via
In case when both described options will be used arguments will be merged:
If randomness is preferred pass
Installation
Via NPM
Install the package$ npm install qinu
require it
const qinu = require('qinu')
Via Bower
Install the package$ bower install qinu
add script on page
<script src="/bower_components/qinu/qinu.min.js"></script>
as well you can do it with RequireJS or any similar tool.
Usage
Basic usage
// Generates 32-character random string, e.g. '4plugjpebgyqduvwcy7lo74wj4idxu5w'
const randomString = qinu()
Using with options
// Generates 64-character random string
// that contains only hexadecimal numbers,
// e.g. 'df6x4ou3p5tar625301dfuftqd8rh9kxwcjl6t0mtmxke3a9q8wuu3nhvrtrn3na'
const randomString = qinu({
// The length of output string
length: 64,
// The set of characters to be used by qinu
dict: '1234567890abcdef'
})
Using with template
// Generates string corresponding to template,
// e.g. 'LABEL: hjwjd4hk4cpx7b1ekh9vdmvsnob228bf SUFIX'
const randomString = qinu(
// Set template for output string
{ template: '%arg[0]%: %qinu% %arg[1]%' },
// Pass arguments for template
[ 'LABEL', 'SUFIX' ]
)
%qinu%
will be replaced with generated random string. Each passed argument will replace the relative code %arg[<index>]%
.Instead of array you can pass all template arguments as function arguments:
// It works the same as an example above
const randomString = qinu(
// Set template for output string
{ template: '%arg[0]%: %qinu% %arg[1]%' },
// Pass arguments for template
'LABEL',
'SUFIX'
)
There is another option to pass arguments to the template, via
args
option:// Still, the same as examples above
const randomString = qinu({
template: '%arg[0]%: %qinu% %arg[1]%',
args: [ 'LABEL', 'SUFIX' ]
})
In case when both described options will be used arguments will be merged:
args
from the options object will be in the beginning and arguments from the function argument will be in the end:// Still, no difference
const randomString = qinu(
{
template: '%arg[0]%: %qinu% %arg[1]%',
args: [ 'LABEL' ]
},
'SUFIX'
)
Using predefined options
You can create qinu-generator with predefined options:const qinuCustom = qinu.create({
template: '%arg[0]%-%arg[1]%-%qinu%'
})
// Generates string corresponding to template,
// e.g. 'group-label-wh0qothao58nk0zno2g86ct4gl3j9wa7'
const randomString = qinuCustom('group', 'label')
// or use it with array
const anotherRandomString = qinuCustom(['group', 'label'])
When usingqinu.create()
generated results are ordered in a sequence. This behavior can be changed usingrandom
option
Shortcut for length property
In case you need to specify only thelength
:// Generates 64-character random string
const randomString = qinu(64)
// The shortcut can be applied to create method as well:
const generateRandom10Characters = qinu.create(10)
// Generate 10-character random string
const randomString = generateRandom10Characters()
Generating unique sequence (random option)
In case if absolute uniqueness is required during the session,qinu.create()
creates a function that first generate a random value and then iterate it one-by-one. This makes it impossible to generate the same string unless all possible combinations wasn't generated.const next = qinu.create({ length: 3, dict: 'abc' })
next() // 'abb'
next() // 'abc'
next() // 'aca'
If randomness is preferred pass
random: true
when create generator:const generate = qinu.create({ random: true, length: 3, dict: 'abc' })
generate() // 'ccb'
generate() // 'aaa'
generate() // 'baa'