"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = require("fs"); const debug_1 = __importDefault(require("debug")); const log = debug_1.default('@kwsites/file-exists'); function check(path, isFile, isDirectory) { log(`checking %s`, path); try { const stat = fs_1.statSync(path); if (stat.isFile() && isFile) { log(`[OK] path represents a file`); return true; } if (stat.isDirectory() && isDirectory) { log(`[OK] path represents a directory`); return true; } log(`[FAIL] path represents something other than a file or directory`); return false; } catch (e) { if (e.code === 'ENOENT') { log(`[FAIL] path is not accessible: %o`, e); return false; } log(`[FATAL] %o`, e); throw e; } } /** * Synchronous validation of a path existing either as a file or as a directory. * * @param {string} path The path to check * @param {number} type One or both of the exported numeric constants */ function exists(path, type = exports.READABLE) { return check(path, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0); } exports.exists = exists; /** * Constant representing a file */ exports.FILE = 1; /** * Constant representing a folder */ exports.FOLDER = 2; /** * Constant representing either a file or a folder */ exports.READABLE = exports.FILE + exports.FOLDER; //# sourceMappingURL=index.js.map