UNPKG

everything-dev

Version:

A consolidated product package for building Module Federation apps with oRPC APIs.

56 lines (54 loc) • 1.95 kB
import { Effect } from "effect"; import { mkdir, readFile, rm, stat, writeFile } from "node:fs/promises"; import { execFile } from "node:child_process"; import { glob } from "glob"; import { promisify } from "node:util"; //#region src/services/scaffold/upgrade-audit/fs.ts const execFileAsync = promisify(execFile); const listFiles = (projectDir, pattern) => Effect.tryPromise({ try: async () => glob(pattern, { cwd: projectDir, nodir: true, dot: false, absolute: false }), catch: (error) => /* @__PURE__ */ new Error(`glob failed for ${pattern}: ${String(error)}`) }); const fileExists = (projectDir, relativePath) => Effect.tryPromise({ try: async () => { try { await stat(`${projectDir}/${relativePath}`); return true; } catch { return false; } }, catch: (error) => /* @__PURE__ */ new Error(`stat failed for ${relativePath}: ${String(error)}`) }); const readText = (projectDir, relativePath) => Effect.tryPromise({ try: () => readFile(`${projectDir}/${relativePath}`, "utf-8"), catch: (error) => /* @__PURE__ */ new Error(`read failed for ${relativePath}: ${String(error)}`) }); const writeText = (projectDir, relativePath, content) => Effect.tryPromise({ try: async () => { const target = `${projectDir}/${relativePath}`; const dir = target.slice(0, target.lastIndexOf("/")); if (dir) await mkdir(dir, { recursive: true }); await writeFile(target, content); return relativePath; }, catch: (error) => /* @__PURE__ */ new Error(`write failed for ${relativePath}: ${String(error)}`) }); const removePath = (projectDir, relativePath) => Effect.tryPromise({ try: async () => { await rm(`${projectDir}/${relativePath}`, { force: true, recursive: true }); return relativePath; }, catch: (error) => /* @__PURE__ */ new Error(`remove failed for ${relativePath}: ${String(error)}`) }); //#endregion export { fileExists, listFiles, readText, removePath, writeText }; //# sourceMappingURL=fs.mjs.map