hipstapas.core
Version:
Easy and unobtrusive generation of secure strings, uuids, passphrases (using EFF wordlists) and random numbers.
44 lines (38 loc) • 1.63 kB
JavaScript
const { v4: uuidv4 } = require('uuid');
const { validate } = require('../helpers/validator')
const { generationResult, emptyObject } = require('../helpers/utils')
function generateUuids(resultsCount)
{
let uuids = [];
for (let count = 0; count < resultsCount; count++) {
uuids.push(uuidv4());
}
return uuids;
}
/**
* Validate the input and generate UUIDs using the passed
* configuration or use the default configuration values if an option is missing
* @param {*} options
*/
function validateAndGenerateUuids(options = emptyObject()) {
const resultsCountParameter = options.resultsCount;
const resultsCount = 1;
let validateResultsCount = validate(resultsCountParameter, {
rules: [
{
"check": function (v) { return Number.isInteger(v); },
"message": "Only numbers between 1 and 100 are allowed as values for the query parameter 'resultsCount'. Example: https://hipstapas.dev/api/uuid?resultsCount=10"
},
{
"check": function (v) { return v >= 1 && v <= 100; },
"message": "The value of the query parameter 'resultsCount' must be between 1 and 100. Example: https://hipstapas.dev/api/uuid?resultsCount=10"
}
]
}, resultsCount);
var results = [];
if (validateResultsCount.success) {
results = generateUuids(validateResultsCount.value);
}
return generationResult(validateResultsCount, results);
}
module.exports = { validateAndGenerateUuids }