const MODULE_NAME = 'MKDIR-IF-NOT-EXISTS'; const fsPromise = require('fs').promises; const mkdirp = require('mkdirp'); const logger = require('tektrans-logger'); logger.verbose(`${MODULE_NAME} 5C419B7B: CEKIDOT`); const existed = []; /** * @deprecated because mkdirp is safe if dir already exists * @param {} filename */ const isFileExists = async (filename) => { if (existed.indexOf(filename) >= 0) return true; try { await fsPromise.stat(filename); existed.push(filename); return true; } catch (e) { return false; } }; /** * @deprecated please use mkdirp directly * @param {} xid * @param {} dirname * @param {} callerName */ module.exports = async (xid, dirname, callerName) => { logger.verbose(`${MODULE_NAME} 4BD9F146: Create directory if not exists`, { xid, dirname, callerName, }); const alreadyExists = await isFileExists(dirname); if (!alreadyExists) { logger.verbose(`${MODULE_NAME} 6B08D52D: Creating directory`, { xid, dirname, callerName, }); try { await mkdirp(dirname); } catch (e) { logger.warn(`${MODULE_NAME} 857718E9: Exception on creating directory`, { xid, dirname, callerName, eCode: e.code, eMessage: e.message, }); } } else { logger.verbose(`${MODULE_NAME} 14A094F5: Directory already exists`, { xid, dirname, callerName }); } };