UNPKG

everything-dev

Version:

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

81 lines (79 loc) • 2.38 kB
const require_domain = require('./domain.cjs'); let effect = require("effect"); let node_fs_promises = require("node:fs/promises"); let node_child_process = require("node:child_process"); let glob = require("glob"); let node_util = require("node:util"); //#region src/services/scaffold/upgrade-audit/fs.ts const execFileAsync = (0, node_util.promisify)(node_child_process.execFile); const listFiles = (projectDir, pattern) => effect.Effect.tryPromise({ try: async () => (0, glob.glob)(pattern, { cwd: projectDir, nodir: true, dot: false, absolute: false }), catch: (error) => new require_domain.AuditFileError({ op: "glob", target: Array.isArray(pattern) ? pattern.join(" ") : pattern, cause: error }) }); const fileExists = (projectDir, relativePath) => effect.Effect.tryPromise({ try: async () => { try { await (0, node_fs_promises.stat)(`${projectDir}/${relativePath}`); return true; } catch { return false; } }, catch: (error) => new require_domain.AuditFileError({ op: "stat", target: relativePath, cause: error }) }); const readText = (projectDir, relativePath) => effect.Effect.tryPromise({ try: () => (0, node_fs_promises.readFile)(`${projectDir}/${relativePath}`, "utf-8"), catch: (error) => new require_domain.AuditFileError({ op: "read", target: relativePath, cause: error }) }); const writeText = (projectDir, relativePath, content) => effect.Effect.tryPromise({ try: async () => { const target = `${projectDir}/${relativePath}`; const dir = target.slice(0, target.lastIndexOf("/")); if (dir) await (0, node_fs_promises.mkdir)(dir, { recursive: true }); await (0, node_fs_promises.writeFile)(target, content); return relativePath; }, catch: (error) => new require_domain.AuditFileError({ op: "write", target: relativePath, cause: error }) }); const removePath = (projectDir, relativePath) => effect.Effect.tryPromise({ try: async () => { await (0, node_fs_promises.rm)(`${projectDir}/${relativePath}`, { force: true, recursive: true }); return relativePath; }, catch: (error) => new require_domain.AuditFileError({ op: "remove", target: relativePath, cause: error }) }); //#endregion exports.fileExists = fileExists; exports.listFiles = listFiles; exports.readText = readText; exports.removePath = removePath; exports.writeText = writeText; //# sourceMappingURL=fs.cjs.map