46 lines
1.3 KiB
JavaScript
Raw Normal View History

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