UNPKG

@visulima/fs

Version:

Human friendly file system utilities for Node.js

36 lines (32 loc) 1.18 kB
'use strict'; const promises = require('node:fs/promises'); 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 ensureDir = /* @__PURE__ */ __name(async (directory) => { assertValidFileOrDirectoryPath(directory); try { const fileInfo = await promises.lstat(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 { await promises.mkdir(directory, { recursive: true }); } catch (error) { if (error.code !== "EEXIST") { throw error; } const fileInfo = await promises.lstat(directory); if (!fileInfo.isDirectory()) { throw new Error(`Ensure path exists, expected 'dir', got '${getFileInfoType.getFileInfoType(fileInfo)}'`); } } }, "ensureDir"); module.exports = ensureDir;