const fs = require('fs') const util = require('util') const path = require('path') const projectRoot = path.join(__dirname, '..') const cacheDir = path.join(projectRoot, 'cache') const dataDir = path.join(projectRoot, 'data') const readFile = util.promisify(fs.readFile) const writeFile = util.promisify(fs.writeFile) const mkdir = util.promisify(fs.mkdir) async function mkdirAndWriteFile(filepath, data) { try { // create directory await mkdir(path.dirname(filepath)) } catch (err) { // ignore "directory exists errors" if (err.code !== 'EEXIST') throw err } return writeFile(filepath, data) } module.exports = { projectRoot, cacheDir, dataDir, readFile, writeFile, mkdirAndWriteFile }