UNPKG

@visulima/fs

Version:

Human friendly file system utilities for Node.js

36 lines (32 loc) 1.17 kB
'use strict'; const node_fs = require('node:fs'); const assertValidFileOrDirectoryPath = require('./assertValidFileOrDirectoryPath-BMbgA-eI.cjs'); const getFileInfoType = require('./get-file-info-type-BlryFnpp.cjs'); var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); const ensureDirSync = /* @__PURE__ */ __name((directory) => { assertValidFileOrDirectoryPath(directory); try { const fileInfo = node_fs.lstatSync(directory); if (!fileInfo.isDirectory()) { throw new Error(`Ensure path exists, expected 'dir', got '${getFileInfoType.getFileInfoType(fileInfo)}'`); } return; } catch (error) { if (error.code !== "ENOENT") { throw error; } } try { node_fs.mkdirSync(directory, { recursive: true }); } catch (error) { if (error.code !== "EEXIST") { throw error; } const fileInfo = node_fs.lstatSync(directory); if (!fileInfo.isDirectory()) { throw new Error(`Ensure path exists, expected 'dir', got '${getFileInfoType.getFileInfoType(fileInfo)}'`); } } }, "ensureDirSync"); module.exports = ensureDirSync;