UNPKG

1.33 kBJavaScriptView Raw
1"use strict";
2function __export(m) {
3 for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4}
5Object.defineProperty(exports, "__esModule", { value: true });
6__export(require("fs"));
7const fs = require("fs");
8const path = require("path");
9const o777 = parseInt('0777', 8);
10function mkdirpSync(p, opts = {}, made) {
11 if (!opts.mode)
12 opts.mode = o777 & ~process.umask();
13 p = path.resolve(p);
14 try {
15 fs.mkdirSync(p, opts.mode);
16 made = made || p;
17 }
18 catch (err0) {
19 switch (err0.code) {
20 case 'ENOENT':
21 if (path.dirname(p) === p)
22 throw err0;
23 made = mkdirpSync(path.dirname(p), opts, made);
24 mkdirpSync(p, opts, made);
25 break;
26 // In the case of any other error, just see if there's a dir
27 // there already. If so, then hooray! If not, then something
28 // is borked.
29 default:
30 let stat;
31 try {
32 stat = fs.statSync(p);
33 }
34 catch (err1) {
35 throw err0;
36 }
37 if (!stat.isDirectory())
38 throw err0;
39 break;
40 }
41 }
42 return made;
43}
44exports.mkdirpSync = mkdirpSync;