UNPKG

@visulima/fs

Version:

Human friendly file system utilities for Node.js

34 lines (31 loc) 1.11 kB
import { lstatSync, mkdirSync } from 'node:fs'; import assertValidFileOrDirectoryPath from './assertValidFileOrDirectoryPath-BWWgA1wj.mjs'; import { g as getFileInfoType } from './get-file-info-type-ButUVD6d.mjs'; var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); const ensureDirSync = /* @__PURE__ */ __name((directory) => { assertValidFileOrDirectoryPath(directory); try { const fileInfo = lstatSync(directory); if (!fileInfo.isDirectory()) { throw new Error(`Ensure path exists, expected 'dir', got '${getFileInfoType(fileInfo)}'`); } return; } catch (error) { if (error.code !== "ENOENT") { throw error; } } try { mkdirSync(directory, { recursive: true }); } catch (error) { if (error.code !== "EEXIST") { throw error; } const fileInfo = lstatSync(directory); if (!fileInfo.isDirectory()) { throw new Error(`Ensure path exists, expected 'dir', got '${getFileInfoType(fileInfo)}'`); } } }, "ensureDirSync"); export { ensureDirSync as default };