You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
728 B
JavaScript

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
}