12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.mkdirpManual = exports.mkdirpManualSync = void 0;
- const path_1 = require("path");
- const opts_arg_js_1 = require("./opts-arg.js");
- const mkdirpManualSync = (path, options, made) => {
- const parent = (0, path_1.dirname)(path);
- const opts = { ...(0, opts_arg_js_1.optsArg)(options), recursive: false };
- if (parent === path) {
- try {
- return opts.mkdirSync(path, opts);
- }
- catch (er) {
- // swallowed by recursive implementation on posix systems
- // any other error is a failure
- const fer = er;
- if (fer && fer.code !== 'EISDIR') {
- throw er;
- }
- return;
- }
- }
- try {
- opts.mkdirSync(path, opts);
- return made || path;
- }
- catch (er) {
- const fer = er;
- if (fer && fer.code === 'ENOENT') {
- return (0, exports.mkdirpManualSync)(path, opts, (0, exports.mkdirpManualSync)(parent, opts, made));
- }
- if (fer && fer.code !== 'EEXIST' && fer && fer.code !== 'EROFS') {
- throw er;
- }
- try {
- if (!opts.statSync(path).isDirectory())
- throw er;
- }
- catch (_) {
- throw er;
- }
- }
- };
- exports.mkdirpManualSync = mkdirpManualSync;
- exports.mkdirpManual = Object.assign(async (path, options, made) => {
- const opts = (0, opts_arg_js_1.optsArg)(options);
- opts.recursive = false;
- const parent = (0, path_1.dirname)(path);
- if (parent === path) {
- return opts.mkdirAsync(path, opts).catch(er => {
- // swallowed by recursive implementation on posix systems
- // any other error is a failure
- const fer = er;
- if (fer && fer.code !== 'EISDIR') {
- throw er;
- }
- });
- }
- return opts.mkdirAsync(path, opts).then(() => made || path, async (er) => {
- const fer = er;
- if (fer && fer.code === 'ENOENT') {
- return (0, exports.mkdirpManual)(parent, opts).then((made) => (0, exports.mkdirpManual)(path, opts, made));
- }
- if (fer && fer.code !== 'EEXIST' && fer.code !== 'EROFS') {
- throw er;
- }
- return opts.statAsync(path).then(st => {
- if (st.isDirectory()) {
- return made;
- }
- else {
- throw er;
- }
- }, () => {
- throw er;
- });
- });
- }, { sync: exports.mkdirpManualSync });
- //# sourceMappingURL=mkdirp-manual.js.map
|