make-dir is a Node.js utility that creates a directory and any missing parent directories, similar to `mkdir -p`. It provides both async (Promise) and sync APIs, and can use a custom `fs` implementation, which can be useful when you need control over the filesystem layer.
Project status
- Maintenance status: The repo shows recent activity, with the latest recorded upstream push and
updateson 2025-09-10, about 11 months ago relative to 2026-08-13, suggesting it is maintained but not on a rapid cadence. - Update cadence (apparent): After a major update in 2025-09-10 (v5.1.0) and an earlier major change in 2024-05-02 (v5.0.0), updates appear infrequent, with longer gaps between major milestones.
AI summary generated
Recent updates
v5.1.0
v5.1.0 adds support for passing file:// URL objects to makeDirectory and makeDirectorySync. The TypeScript declarations and runtime implementation were updated to convert URL inputs to filesystem paths before validation and directory creation.
Featuresv5.0.0
v5.0.0 is a major release that migrates the package to ESM, requires Node.js 18, and switches from a default export to named exports. The implementation and typings were updated accordingly, including `makeDirectory` and `makeDirectorySync` entry points.
Breakingv4.0.0
v4.0.0 is a major release that drops support for Node.js versions below 10. It also updates dependencies (notably the `semver` package) and refreshes CI tooling.
Breakingv3.1.0
v3.1.0 removes usage of the deprecated `process.umask()` API from the production code path of `make-dir`. The implementation and published typings/docs now use a constant default `mode` instead of deriving it from `process.umask()`.
v3.0.2
Release v3.0.2 makes a small error-handling change in the async makeDir flow when it needs to verify an existing path. If the internal stat() call fails, it now rethrows the original error (matching the sync implementation) instead of surfacing the stat() failure.
v3.0.1
v3.0.1 updates make-dir to compute the default directory permissions mode from the current `process.umask()` on every `makeDir` and `makeDir.sync` call, rather than once at module load time. The release notes mention this change, and the code diff shows it was implemented by moving the defaults calculation into a per-call helper.
v3.0.0
v3.0.0 removes the `pify` dependency, switches to `util.promisify`, and updates TypeScript typings to use a CommonJS-compatible `export =` style. The release notes document Node.js engine requirements and a change to the default import pattern for TypeScript users.
Breakingv2.1.0
Release v2.1.0 primarily introduces TypeScript support by adding an `index.d.ts` file with a typed `makeDir` default export and a `sync` named export. The code changes are minimal, but the module export wiring in `index.js` was updated to add a `default` export property for CommonJS interop.
Featuresv2.0.0
v2.0.0 introduces a breaking runtime requirement by requiring Node.js 6. It also updates implementation details to use the native fs.mkdir/mkdirSync recursive option when available, improving compatibility with newer Node.js versions.
Breaking