Files
git.taskfile.build/js/randomFunctionNames.js
T

68 lines
2.0 KiB
JavaScript

// Function to extract array from span content
const getItemsFromSpan = (spanId) => {
const span = document.getElementById(spanId)
if (span) {
return span.textContent.split(',').map((item) => item.trim())
}
return []
}
// Load actions and objects from spans
let actions = []
let objects = []
let objectTools = []
// Load after DOM is ready
document.addEventListener('DOMContentLoaded', () => {
actions = getItemsFromSpan('actions')
objects = getItemsFromSpan('objects')
objectTools = getItemsFromSpan('object-tools')
})
// Function to get a random item from an array
const getRandomItem = (arr) => arr[Math.floor(Math.random() * arr.length)]
// Function to generate random function names
const generateFunctionName = () => {
const action = getRandomItem(actions)
const firstObject = getRandomItem([...objects, ...objectTools])
// Randomly decide if a compound object name should be created
const compound = Math.random() > 0.7
if (compound) {
// Only use regular objects as the second object
const secondObject = getRandomItem(objects)
return `${action}-${firstObject}-${secondObject}`
}
return `${action}-${firstObject}`
}
// Generate a list of random function names
const generateFunctionNames = (count = 10) => {
const names = []
for (let i = 0; i < count; i++) {
names.push(generateFunctionName())
}
return names
}
// Display the function names on the page
const displayFunctionNames = () => {
const container = document.getElementById('function-names')
container.innerHTML = generateFunctionNames()
.map((name) => `<li>${name}</li>`)
.join('')
}
// Run on page load
document.addEventListener('DOMContentLoaded', displayFunctionNames)
// Add event listener to the button
document.addEventListener('DOMContentLoaded', () => {
const button = document.getElementById('generate-function-names')
if (button) {
button.addEventListener('click', displayFunctionNames)
}
})