UNPKG

@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
/** * @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 };