"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createNodeFS; const path_1 = __importDefault(require("path")); const immutable_1 = __importDefault(require("immutable")); const fs_1 = __importDefault(require("../utils/fs")); const fs_2 = __importDefault(require("../models/fs")); function fsReadDir(folder) { return fs_1.default.readdir(folder).then((files) => { files = immutable_1.default.List(files); return files .map((file) => { if (file === "." || file === "..") return; const stat = fs_1.default.statSync(path_1.default.join(folder, file)); if (stat.isSymbolicLink()) { return; } if (stat.isDirectory()) file = file + path_1.default.sep; return file; }) .filter((file) => { return Boolean(file); }); }); } function fsLoadObject(filename) { return require(filename); } function createNodeFS(root) { return fs_2.default.create({ root: root, fsExists: fs_1.default.exists, fsReadFile: fs_1.default.readFile, fsStatFile: fs_1.default.stat, fsReadDir: fsReadDir, fsLoadObject: fsLoadObject, fsReadAsStream: fs_1.default.readStream }); }