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);