@haystacks/async
Version:
A framework to build any number or any kind of native application or automation solution.
508 lines (486 loc) • 28.9 kB
JavaScript
/**
* @file characterGeneration.js
* @module characterGeneration
* @description Contains all business rules for randomly generating characters of all kinds.
* @requires module:ruleParsing
* @requires module:loggers
* @requires {@link https://www.npmjs.com/package/@haystacks/constants|@haystacks/constants}
* @requires {@link https://www.npmjs.com/package/path|path}
* @author Seth Hollingsead
* @date 2022/01/25
* @copyright Copyright © 2022-… by Seth Hollingsead. All rights reserved
*/
// Internal imports
import ruleParsing from './ruleParsing.js';
import loggers from '../../executrix/loggers.js';
// External imports
import hayConst from '@haystacks/constants';
import path from 'path';
const {abt, bas, biz, gen, msg, num, sys, wrd} = hayConst;
const baseFileName = path.basename(import.meta.url, path.extname(import.meta.url));
// framework.businessRules.rules.characterGeneration.
const namespacePrefix = wrd.cframework + bas.cDot + sys.cbusinessRules + bas.cDot + wrd.crules + bas.cDot + baseFileName + bas.cDot;
/**
* @function randomlyGenerateMixedCaseLetterOrSpecialCharacter
* @description Randomly generates an english alphabetic letter from A-Z, a-z or
* a random special character from the input list of special characters.
* @param {string} inputData The list of allowable special characters that should be used to randomly select from.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} Randomly returns a random mixed case letter of the english alphabet,
* or a random special character from the list of allowable special characters.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateMixedCaseLetterOrSpecialCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateMixedCaseLetterOrSpecialCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + JSON.stringify(inputData));
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + JSON.stringify(inputMetaData));
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, ''], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(inputData + alphabet);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + JSON.stringify(returnData));
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateUpperCaseLetterOrSpecialCharacter
* @description Randomly generates an english alphabetic letter from A-Z or
* a random special character from the input list of special characters.
* @param {string} inputData The list of allowable special characters that should be used to randomly select from.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} Randomly returns a random upper case letter of the english alphabet,
* or a random special character from the ist of allowable special characters.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateUpperCaseLetterOrSpecialCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateUpperCaseLetterOrSpecialCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, sys.cUpperCase], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(inputData + alphabet);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateLowerCaseLetterOrSpecialCharacter
* @description Randomly generates an english alphabetic letter from a-z or
* a random special character from the input list of special characters.
* @param {string} inputData The list of allowable special characters that should be used to randomly select from.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} Randomly returns a random lower case letter of the english alphabet,
* or a random special character from the list of allowable special characters.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateLowerCaseLetterOrSpecialCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateLowerCaseLetterOrSpecialCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, sys.cLowerCase], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(inputData + alphabet);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateEitherMixedCaseLetterOrNumberOrSpecialCharacter
* @description Randomly generates an alphabetic letter from A-Z, a-z or a number 0-9 or
* a random special character from the input ist of special characters.
* @param {string} inputData The list of allowable special characters that should be used to randomly select from.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} Randomly returns a random number, a random mixed case letter of the english alphabet,
* or a random special character from the ist of allowable special characters.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateEitherMixedCaseLetterOrNumberOrSpecialCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateEitherMixedCaseLetterOrNumberOrSpecialCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, ''], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(inputData + alphabet + abt.cAllNumbers);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateEitherUpperCaseLetterOrNumberOrSpecialCharacter
* @description Randomly generates an english alphabetic letter from A-Z or a number 0-9 or
* a random special character from the input ist of special characters.
* @param {string} inputData The list of allowable special characters that should be used to randomly select from.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} Randomly returns a random number, a random upper case letter of the english alphabet,
* or a random special character from the list of allowable special characters.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateEitherUpperCaseLetterOrNumberOrSpecialCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateEitherUpperCaseLetterOrNumberOrSpecialCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, sys.cUpperCase], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(inputData + alphabet + abt.cAllNumbers);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateEitherLowerCaseLetterOrNumberOrSpecialCharacter
* @description Randomly generates an english alphabetic letter from a-z or a number 0-9 or
* a random special character from the input list of special characters.
* @param {string} inputData The list of allowable special characters that should be used to randomly select from.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} Randomly returns a random number, a random lower case letter of the english alphabet,
* or a random special character from the list of allowable special characters.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateEitherLowerCaseLetterOrNumberOrSpecialCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateEitherLowerCaseLetterOrNumberOrSpecialCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, sys.cLowerCase], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(inputData + alphabet + abt.cAllNumbers);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateMixedCaseAlphaNumericCharacter
* @description Randomly generates an alpha-numeric code from a-z or A-Z or 0-9.
* @param {string} inputData Not used for this business rule.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} Either a random letter (could be upper case or lower case, which is also random) or a random number.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateMixedCaseAlphaNumericCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateMixedCaseAlphaNumericCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, ''], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(alphabet + abt.cAllNumbers);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateUpperCaseAlphaNumericCharacter
* @description Randomly generates an alpha-numeric code from A-Z or 0-9.
* @param {string} inputData Not used for this business rule.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} Either a random upper case letter or a random number.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateUpperCaseAlphaNumericCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateUpperCaseAlphaNumericCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, sys.cUpperCase], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(alphabet + abt.cAllNumbers);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateLowerCaseAlphaNumericCharacter
* @description Randomly generates an alpha-numeric code from a-z or 0-9.
* @param {string} inputData Not used for this business rule.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} Either a random lower case letter or a random number.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateLowerCaseAlphaNumericCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateLowerCaseAlphaNumericCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, sys.cLowerCase], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(alphabet + abt.cAllNumbers);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateNumericCharacter
* @description Randomly generates a string character in the range of 0-9.
* @param {string} inputData Not used for this business rule.
* @param {string} inputMetaData Not used for this business rule.
* @return {string} A single randomly generated string character in the range of 0-9.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateNumericCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateNumericCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
returnData = await randomlyGenerateSpecialCharacter(abt.cAllNumbers);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateSpecialCharacter
* @description Randomly select a special character from a list of allowable special characters.
* @param {string} inputData The list of allowable special characters that should be used to randomly select from.
* @param {string} inputMetaData Not used for this business rule.
* @return {string} A character randomly selected from the input list of allowable characters.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateSpecialCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateSpecialCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// NOTE Cannot have a "." as part of a variable name in a {set}
if (inputData) {
let inputDataLength = inputData.length.toString();
let number = await randomlyGenerateNumberInRange(num.c1, [inputDataLength, gen.cTrue, gen.cTrue]);
// NOTE: The String.length() above is a 1-base count, the String.substring is zero-based.
returnData = inputData.substring(number - 1, number);
} // End-if (inputData)
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateNumberInRange
* @description Randomly generates a number between the start-range and end-range.
* @param {string} inputData A string that contains the number with the minimum value.
* @param {array<string|integer,boolean,boolean>} inputMetaData An array with multiple input parameters:
* inputMetaData[0] = maximumValue - A string or integer that contains the number with the maximum value.
* inputMetaData[1] = includeMaximum - A True or False value that indicates if the maximum should be included or
* excluded from the range of allowable range of values to return from.
* inputMetaData[2] = addMinimum - A True or False value that indicates if the minimum should be added to the value or not.
* @return {string} The new random number that was generated according to the input parameters.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateNumberInRange(inputData, inputMetaData) {
let functionName = randomlyGenerateNumberInRange.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
if (inputData && inputMetaData) {
let minimum = parseInt(inputData);
let maximum = parseInt(inputMetaData[0]);
let addOne = await ruleParsing.processRulesInternal([inputMetaData[1], ''], [biz.cstringToBoolean]);
let addMinimum = await ruleParsing.processRulesInternal([inputMetaData[2], ''], [biz.cstringToBoolean]);
if (addOne === true) {
if (addMinimum === true) {
returnData = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum;
} else {
returnData = Math.floor(Math.random() * (maximum - minimum + 1));
}
} else {
if (addMinimum === true) {
returnData = Math.floor(Math.random() * (maximum - minimum)) + minimum;
} else {
returnData = Math.floor(Math.random() * (maximum - minimum));
}
}
} // End-if (inputData && inputMetaData)
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData.toString();
}
/**
* @function randomlyGenerateBooleanValue
* @description Randomly generates a boolean value {@code TRUE} or {@code FALSE}.
* @param {string} inputData Not used for this business rule.
* @param {string} inputMetaData Not used for this business rule.
* @return {boolean} A boolean value that is
* either {@code TRUE} or {@code FALSE} as a random 50-50 chance of one or the other.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateBooleanValue(inputData, inputMetaData) {
let functionName = randomlyGenerateBooleanValue.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
returnData = Math.random() >= 0.5;
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateMixedCaseAlphabeticCharacter
* @description Randomly generates either an upper case or
* lower case random english alphabetic letter from a-z or A-Z.
* @param {string} inputData Not used for this business rule.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} A randomly generated english alphabetic letter from a-z or A-Z.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateMixedCaseAlphabeticCharacter(inputData, inputMetaData) {
let functionName = randomlyGenerateMixedCaseAlphabeticCharacter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, ''], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(alphabet);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateLowerCaseLetter
* @description Randomly generates a lower case english alphabetic letter from a-z.
* @param {string} inputData Not used for this business rule.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} A randomly generated english alphabetic letter from a-z.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateLowerCaseLetter(inputData, inputMetaData) {
let functionName = randomlyGenerateLowerCaseLetter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, sys.cLowerCase], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(alphabet);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function randomlyGenerateUpperCaseLetter
* @description Randomly generates an upper case alphabetic letter from A-Z.
* @param {string} inputData Not used for this business rule.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} A randomly generated alphabetic letter from A-Z.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function randomlyGenerateUpperCaseLetter(inputData, inputMetaData) {
let functionName = randomlyGenerateUpperCaseLetter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, sys.cUpperCase], [biz.clanguageToAlphabet]);
returnData = await randomlyGenerateSpecialCharacter(alphabet);
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function convertNumberToUpperCaseLetter
* @description Converts a number from 1-26 into an upper case letter of the english alphabet A-Z.
* @param {string} inputData A string that contains a number in the range of 1-26 that
* should be converted to an upper case letter of the english alphabet.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} A letter of the alphabet where 1-26 is converted in a letter A-Z.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function convertNumberToUpperCaseLetter(inputData, inputMetaData) {
let functionName = convertNumberToUpperCaseLetter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
if (inputData) {
let number = parseInt(inputData);
number--;
// number is:
await loggers.consoleLog(namespacePrefix + functionName, msg.cnumberIs + number);
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, sys.cUpperCase], [biz.clanguageToAlphabet]);
returnData = alphabet.substring(number, number + 1);
} // End-if (inputData)
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
/**
* @function convertNumberToLowerCaseLetter
* @description Converts a number from 1-26 into a lower case letter of the english alphabet a-z.
* @param {string} inputData A string that contains a number in the range of 1-26 that
* should be converted in a lower case letter of the english alphabet.
* @param {string} inputMetaData The name of the language who's alphabet should be used for international characters.
* @return {string} A letter of the alphabet where 1-26 is converted to a letter a-z.
* @author Seth Hollingsead
* @date 2022/01/25
*/
async function convertNumberToLowerCaseLetter(inputData, inputMetaData) {
let functionName = convertNumberToLowerCaseLetter.name;
await loggers.consoleLog(namespacePrefix + functionName, msg.cBEGIN_Function);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputDataIs + inputData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cinputMetaDataIs + inputMetaData);
let returnData = '';
if (inputData) {
let number = parseInt(inputData);
number--;
// number is:
loggers.consoleLog(namespacePrefix + functionName, msg.cnumberIs + number);
// Pass an empty string to get the mixed case.
let alphabet = await ruleParsing.processRulesInternal([inputMetaData, sys.cLowerCase], [biz.clanguageToAlphabet]);
returnData = alphabet.substring(number, number + 1).toLowerCase();
} // End-if (inputData)
await loggers.consoleLog(namespacePrefix + functionName, msg.creturnDataIs + returnData);
await loggers.consoleLog(namespacePrefix + functionName, msg.cEND_Function);
return returnData;
}
export default {
randomlyGenerateMixedCaseLetterOrSpecialCharacter,
randomlyGenerateUpperCaseLetterOrSpecialCharacter,
randomlyGenerateLowerCaseLetterOrSpecialCharacter,
randomlyGenerateEitherMixedCaseLetterOrNumberOrSpecialCharacter,
randomlyGenerateEitherUpperCaseLetterOrNumberOrSpecialCharacter,
randomlyGenerateEitherLowerCaseLetterOrNumberOrSpecialCharacter,
randomlyGenerateMixedCaseAlphaNumericCharacter,
randomlyGenerateUpperCaseAlphaNumericCharacter,
randomlyGenerateLowerCaseAlphaNumericCharacter,
randomlyGenerateNumericCharacter,
randomlyGenerateSpecialCharacter,
randomlyGenerateNumberInRange,
randomlyGenerateBooleanValue,
randomlyGenerateMixedCaseAlphabeticCharacter,
randomlyGenerateLowerCaseLetter,
randomlyGenerateUpperCaseLetter,
convertNumberToUpperCaseLetter,
convertNumberToLowerCaseLetter
};