class Model { constructor() { // Initialize isomorphic-git with a file system window.fs = new LightningFS("fs"); // I prefer using the Promisified version honestly window.pfs = window.fs.promises; window.dir = "/test-clone"; } async dirList(dir = "/") { let list = await pfs.readdir(dir); for (let u = 0; u < list.length; u++) { let re = /^\..*$/; if (re.test(list[u])) { list.splice(u, 1); u--; } } let dirtree = [dir]; for (let i = 0; i < list.length; i++) { dirtree[i + 1] = list[i]; let itemStat = await pfs.stat(dirtree[0] + dirtree[i + 1]); if (itemStat.isDirectory()) { dirtree[i + 1] = await this.dirList(dirtree[0] + dirtree[i + 1] + "/"); } } return dirtree; } async dirTree(dir = "/") { var tree = await this.dirList(dir); //console.log(tree); return tree; } purgeFS() { delete window.fs; window.fs = new LightningFS("fs", { wipe: true }); } }