import { readFile, stat, writeFile } from 'node:fs/promises' import { type GlobOptionsWithFileTypesUnset, glob } from 'glob' import { mkdirp } from 'mkdirp' export const file = { existFile(filePath: string) { return stat(filePath) .then((s) => s.isFile()) .catch(() => false) }, glob(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined) { return glob(pattern, options) }, mkdirp: mkdirp as (path: string) => Promise, async tryReadFile(filePath: string | undefined): Promise { if (!filePath) return undefined return readFile(filePath).catch(() => undefined) }, writeFile, }