Skip to content

LightSpeedWorks/mkdir-parents

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mkdir-parents is a function like mkdir -p.

This function returns promise, async/await ready, also yieldable, thunkified, promisified, useful with aa or co.

Installation

NPM NPM

$ npm install mkdir-parents

Usage

const mkdirParents = require('mkdir-parents');

mkdirParents(dir, [mode], [callback])

  • dir - directory path name
  • [mode] - {optional} permission
  • [callback] - {optional} function callback(err)
  • retuns - promise, thunk for aa or co. returns undefined if callback is specified.

mkdirParents.sync(dir, [mode]) or mkdirParents.mkdirParentsSync(dir, [mode])

  • dir - directory path name
  • [mode] - {optional} permission

Examples

async await example

// require dependencies
const mkdirParents = require('mkdir-parents');

// async await style function
async function main() {
  const dir = '/tmp/deep/dir';
  const mode = parseInt('0777', 8);

  try {
    await mkdirParents(dir, mode);
    console.log(dir + ' created with perm 0' + mode.toString(8));
  } catch (err) {
    console.log(dir + ' cant created with status ' + err);
  }
}

main();

promise example

// require dependencies
const mkdirParents = require('mkdir-parents');

const dir = '/tmp/deep/dir';
const mode = parseInt('0777', 8);

mkdirParents(dir, mode)
.then(() => console.log(dir + ' created with perm 0' + mode.toString(8)))
.catch(err => console.log(dir + ' cant created with status ' + err));

async await like aa or co with generator example

// require dependencies
const mkdirParents = require('mkdir-parents');
const aa = require('aa');

// aa with generator
aa(function *() {
  var dir = '/tmp/deep/dir';
  var mode = parseInt('0777', 8);

  try {
    yield mkdirParents(dir, mode);
    console.log(dir + ' created with perm 0' + mode.toString(8));
  } catch (err) {
    console.log(dir + ' cant created with status ' + err);
  }
}).then(function () {});

async callback example

// require dependencies
var mkdirParents = require('mkdir-parents');

var dir = '/tmp/deep/dir';
var mode = parseInt('0777', 8);

mkdirParents(dir, mode, function (err) {
  if (err) {
    console.log(dir + ' cant created with status ' + err);
  } else {
    console.log(dir + ' created with perm 0' + mode.toString(8));
  }
});

async thunk example

// require dependencies
var mkdirParents = require('mkdir-parents');

var dir = '/tmp/deep/dir';
var mode = parseInt('0777', 8);

mkdirParents(dir, mode)(function (err) {
  if (err) {
    console.log(dir + ' cant created with status ' + err);
  } else {
    console.log(dir + ' created with perm 0' + mode.toString(8));
  }
});

sync example

// require dependencies
var mkdirParentsSync = require('mkdir-parents').sync;

var dir = '/tmp/deep/dir';
var mode = parseInt('0777', 8);

try {
  mkdirParentsSync(dir, mode);
  console.log(dir + ' created with perm 0' + mode.toString(8));
} catch (err) {
  console.log(dir + ' cant created with status ' + err);
}

License

MIT

Releases

No releases published

Packages

No packages published