package.dist.mjs.mkdirp-native.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mkdirp Show documentation
Show all versions of mkdirp Show documentation
Recursively mkdir, like `mkdir -p`
The newest version!
import { dirname } from 'path';
import { findMade, findMadeSync } from './find-made.js';
import { mkdirpManual, mkdirpManualSync } from './mkdirp-manual.js';
import { optsArg } from './opts-arg.js';
export const mkdirpNativeSync = (path, options) => {
const opts = optsArg(options);
opts.recursive = true;
const parent = dirname(path);
if (parent === path) {
return opts.mkdirSync(path, opts);
}
const made = findMadeSync(opts, path);
try {
opts.mkdirSync(path, opts);
return made;
}
catch (er) {
const fer = er;
if (fer && fer.code === 'ENOENT') {
return mkdirpManualSync(path, opts);
}
else {
throw er;
}
}
};
export const mkdirpNative = Object.assign(async (path, options) => {
const opts = { ...optsArg(options), recursive: true };
const parent = dirname(path);
if (parent === path) {
return await opts.mkdirAsync(path, opts);
}
return findMade(opts, path).then((made) => opts
.mkdirAsync(path, opts)
.then(m => made || m)
.catch(er => {
const fer = er;
if (fer && fer.code === 'ENOENT') {
return mkdirpManual(path, opts);
}
else {
throw er;
}
}));
}, { sync: mkdirpNativeSync });
//# sourceMappingURL=mkdirp-native.js.map