UNPKG

ignore-sync

Version:

a CLI tool to build and sync *ignore files across files and repositories

42 lines (35 loc) 1.11 kB
import fs from 'node:fs' import path from 'node:path' import { promisify } from 'node:util' const fsAccess = promisify(fs.access) const fsStat = promisify(fs.stat) const fsUnlink = promisify(fs.unlink) const fsWriteFile = promisify(fs.writeFile) const fsReaddir = promisify(fs.readdir) const fsReadFile = promisify(fs.readFile) export const isReadable = async (dataPath) => { try { await fsAccess(dataPath, fs.constants.R_OK) return true } catch { return false } } export const isDirectory = async (dataPath) => { const stats = await fsStat(dataPath) return stats.isDirectory() } export const overwriteFile = async (filePath, fileStr) => { await fsUnlink(filePath).catch(() => {}) await fsWriteFile(filePath, fileStr) } export const readDir = async (absoluteDirPath) => { const relativeDataPaths = await fsReaddir(absoluteDirPath) return relativeDataPaths.map((relativeDataPath) => { return path.join(absoluteDirPath, relativeDataPath) }) } export const readFile = async (filePath) => { const fileBuffer = await fsReadFile(filePath) return String(fileBuffer) }