Creating nested menu from directory with Nodejs

I would like to create a nested menu and show all files and directories (except hidden folders) in the selected directory with#nodejs

import {readdir} from 'node:fs/promises';
import {join, parse} from 'node:path';
import slugify from '@sindresorhus/slugify';  

export async function directoryMenu(dir) {  
 let menu = '';  
  
 for (const child of await readdir(dir, {withFileTypes: true})) {  
  if (!child.name.startsWith('.') && !child.name.startsWith('_')) {  
   if (child.isDirectory()) {  
    menu += `<li><button>${child.name}</button> ${await directoryMenu(dir + '/' + child.name)}</li>`;  
   } else if (child.isFile() && child.name.match(/\.md$/)) {  
    const name = parse(child.name).name;  
    const href = join(dir.replace(/^content\/?/, '/').toLowerCase(), slugify(name));  
    menu += `<li><a href="${href}">${name}</a></li>`;  
   }  
  }  
 }  
  
 return `<ul>${menu}</ul>`;  
}

You can try it:

console.log(await directoryMenu('content'));