netlify-cli
Version:
Netlify command line tool
48 lines (39 loc) • 1.09 kB
JavaScript
const fs = require('fs')
const { promisify } = require('util')
const del = require('del')
const makeDir = require('make-dir')
const pathType = require('path-type')
const statAsync = promisify(fs.stat)
const readFileAsync = promisify(fs.readFile)
const writeFileAsync = promisify(fs.writeFile)
const accessAsync = promisify(fs.access)
const readFileAsyncCatchError = async (filepath) => {
try {
return { content: await readFileAsync(filepath) }
} catch (error) {
return { error }
}
}
const fileExistsAsync = async (filePath) => {
try {
await accessAsync(filePath, fs.F_OK)
return true
} catch (_) {
return false
}
}
const isFileAsync = (filePath) => pathType.isFile(filePath)
const mkdirRecursiveSync = (path) => makeDir.sync(path)
const mkdirRecursiveAsync = (path) => makeDir(path)
const rmdirRecursiveAsync = (path) => del(path, { force: true })
module.exports = {
statAsync,
readFileAsync,
readFileAsyncCatchError,
writeFileAsync,
fileExistsAsync,
isFileAsync,
mkdirRecursiveSync,
mkdirRecursiveAsync,
rmdirRecursiveAsync,
}