UNPKG

pddl-workspace

Version:
95 lines 3.48 kB
"use strict"; /* -------------------------------------------------------------------------------------------- * Copyright (c) Jan Dolejsi. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. * ------------------------------------------------------------------------------------------ */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.exists = exports.isEmpty = exports.getFiles = exports.mkdirIfDoesNotExist = void 0; const fs = __importStar(require("fs")); const path = __importStar(require("path")); /** * Creates directory (optionally recursively) * @param path path for the directory to create * @param options `fs.mkdir` options */ async function mkdirIfDoesNotExist(path, options) { return new Promise((resolve, reject) => { fs.mkdir(path, options, err => { if (err && err.code !== 'EEXIST') { reject(err); } else { resolve(); } }); }); } exports.mkdirIfDoesNotExist = mkdirIfDoesNotExist; /** * All files in the this and its sub-directories. * @param dir starting directory * @returns file name array with absolute path */ async function getFiles(dir) { const dirents = await fs.promises.readdir(dir, { withFileTypes: true }); const childrenFilePromises = dirents.map(dirent => { const res = path.resolve(dir, dirent.name); return dirent.isDirectory() ? getFiles(res) : Promise.resolve([res]); }); const files = await Promise.all(childrenFilePromises); return Array.prototype.concat(...files); } exports.getFiles = getFiles; /** * Determines whether the directory is empty i.e. contains any files or sub-directories. * @param directory directory to test */ async function isEmpty(directory) { const stats = await fs.promises.stat(directory); if (!stats.isDirectory()) { throw new Error("Not a directory: " + directory); } const dirContent = await fs.promises.readdir(directory); return dirContent.length === 0; } exports.isEmpty = isEmpty; async function exists(path) { try { await fs.promises.stat(path); } catch (err) { const error = err; if (error.code === 'ENOENT') { return false; } else { throw err; } } return true; } exports.exists = exists; //# sourceMappingURL=asyncfs.js.map