GitHub - sindresorhus/make-dir: Make a directory and its parents if needed - Think mkdir -p (original) (raw)

make-dir

Make a directory and its parents if needed - Think mkdir -p

Advantages over fsPromises.mkdir('…', {recursive: true})

Advantages over mkdirp

Install

Usage

$ pwd /Users/sindresorhus/fun $ tree .

import {makeDirectory} from 'make-dir';

const path = await makeDirectory('unicorn/rainbow/cake');

console.log(path); //=> '/Users/sindresorhus/fun/unicorn/rainbow/cake'

$ tree . └── unicorn └── rainbow └── cake

Multiple directories:

import {makeDirectory} from 'make-dir';

const paths = await Promise.all([ makeDirectory('unicorn/rainbow'), makeDirectory('foo/bar') ]);

console.log(paths); /* [ '/Users/sindresorhus/fun/unicorn/rainbow', '/Users/sindresorhus/fun/foo/bar' ] */

API

makeDirectory(path, options?)

Returns a Promise for the path to the created directory.

makeDirectorySync(path, options?)

Returns the path to the created directory.

path

Type: string

The directory to create.

options

Type: object

mode

Type: integer
Default: 0o777

The directory permissions.

fs

Type: object
Default: import fs from 'node:fs'

Use a custom fs implementation. For example graceful-fs.

Using a custom fs implementation will block the use of the native recursive option if fs.mkdir or fs.mkdirSync is not the native function.