11cb0ef41Sopenharmony_ciconst {dirname} = require('path') 21cb0ef41Sopenharmony_ciconst {findMade, findMadeSync} = require('./find-made.js') 31cb0ef41Sopenharmony_ciconst {mkdirpManual, mkdirpManualSync} = require('./mkdirp-manual.js') 41cb0ef41Sopenharmony_ci 51cb0ef41Sopenharmony_ciconst mkdirpNative = (path, opts) => { 61cb0ef41Sopenharmony_ci opts.recursive = true 71cb0ef41Sopenharmony_ci const parent = dirname(path) 81cb0ef41Sopenharmony_ci if (parent === path) 91cb0ef41Sopenharmony_ci return opts.mkdirAsync(path, opts) 101cb0ef41Sopenharmony_ci 111cb0ef41Sopenharmony_ci return findMade(opts, path).then(made => 121cb0ef41Sopenharmony_ci opts.mkdirAsync(path, opts).then(() => made) 131cb0ef41Sopenharmony_ci .catch(er => { 141cb0ef41Sopenharmony_ci if (er.code === 'ENOENT') 151cb0ef41Sopenharmony_ci return mkdirpManual(path, opts) 161cb0ef41Sopenharmony_ci else 171cb0ef41Sopenharmony_ci throw er 181cb0ef41Sopenharmony_ci })) 191cb0ef41Sopenharmony_ci} 201cb0ef41Sopenharmony_ci 211cb0ef41Sopenharmony_ciconst mkdirpNativeSync = (path, opts) => { 221cb0ef41Sopenharmony_ci opts.recursive = true 231cb0ef41Sopenharmony_ci const parent = dirname(path) 241cb0ef41Sopenharmony_ci if (parent === path) 251cb0ef41Sopenharmony_ci return opts.mkdirSync(path, opts) 261cb0ef41Sopenharmony_ci 271cb0ef41Sopenharmony_ci const made = findMadeSync(opts, path) 281cb0ef41Sopenharmony_ci try { 291cb0ef41Sopenharmony_ci opts.mkdirSync(path, opts) 301cb0ef41Sopenharmony_ci return made 311cb0ef41Sopenharmony_ci } catch (er) { 321cb0ef41Sopenharmony_ci if (er.code === 'ENOENT') 331cb0ef41Sopenharmony_ci return mkdirpManualSync(path, opts) 341cb0ef41Sopenharmony_ci else 351cb0ef41Sopenharmony_ci throw er 361cb0ef41Sopenharmony_ci } 371cb0ef41Sopenharmony_ci} 381cb0ef41Sopenharmony_ci 391cb0ef41Sopenharmony_cimodule.exports = {mkdirpNative, mkdirpNativeSync} 40