So I have a script that makes an object from the current directory and everything below it.
Here's a console.log of the return statement.
› node recursiveObjectifyDir.js
{ files:
   { 'LICENSE-MIT': { stat: [Object] },
     Gruntfile: { stat: [Object] } },
  dirs: { nested2: [Circular] } }
What does this [Circular] thing mean and where does it come from?
Here the actual script for reference:
var fs = require('fs');
var path = require('path');
function buildFolder(folder) {
    if (!folder) {
        folder = __dirname;
    }
    nestedFiles = fs.readdirSync(folder);
    currentFile = folder + '/' + nestedFiles.pop();
    main = {
        files: {},
        dirs: {}
    };
    while (currentFile !== folder + '/undefined') {
        var fileName = path.basename(currentFile, path.extname(currentFile));
        var fileStat = fs.statSync(currentFile);
        var fullPath = folder + '/' + fileName;
        if (fileStat.isDirectory()) {
            if (fullPath.match(/git/)){
            } else if (fullPath.match(/node_modules/)){
            } else{
              var folderObj = buildFolder(fullPath);
              Object.defineProperty(main.dirs,
                  fileName, {
                      configurable: true,
                      enumerable: true,
                      value: folderObj
                  }
              );
            }
        } else {
            if (fullPath.match(/DS_Store/)){}
            Object.defineProperty(main.files,
                fileName, {
                    configurable: true,
                    enumerable: true,
                    value: {
                        stat: fileStat
                    },
                }
            );
        }
       currentFile = folder + '/' + nestedFiles.pop();
    }
    return main;
}
buildFolderReturn = buildFolder();
console.log(buildFolderReturn);