relaycode
Version:
A developer assistant that automates applying code changes from LLMs.
2 lines • 2.01 kB
JavaScript
;var fs=require('fs'),n=require('path'),logger=require('./logger');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var n__default=/*#__PURE__*/_interopDefault(n);const u=async(e,t=process.cwd())=>{try{return await fs.promises.readFile(n__default.default.resolve(t,e),"utf-8")}catch(r){if(logger.isEnoentError(r))return null;throw r}},g=async(e,t,r=process.cwd())=>{const i=e.replace(/[/\\]+$/,"");if(!i){console.warn(`Invalid file path (points to root directory): ${e}. Skipping.`);return}const s=n__default.default.resolve(r,i);await fs.promises.mkdir(n__default.default.dirname(s),{recursive:true}),await fs.promises.writeFile(s,t,"utf-8");},y=async(e,t=process.cwd())=>{try{await fs.promises.unlink(n__default.default.resolve(t,e));}catch(r){if(r instanceof Error&&"code"in r&&(r.code==="ENOENT"||r.code==="ENOTDIR"))return;throw r}},f=async(e,t=process.cwd())=>{try{return await fs.promises.access(n__default.default.resolve(t,e)),!0}catch{return false}},l=async(e,t)=>{try{await fs.promises.rename(e,t);}catch(r){if(r instanceof Error&&"code"in r&&r.code==="EXDEV")await fs.promises.copyFile(e,t),await fs.promises.unlink(e);else throw r}},v=async(e,t,r=process.cwd())=>{const i=n__default.default.resolve(r,e),s=n__default.default.resolve(r,t);await fs.promises.mkdir(n__default.default.dirname(s),{recursive:true}),await l(i,s);},p=async e=>{try{return (await fs.promises.readdir(e)).length===0}catch{return false}},d=async(e,t)=>{if(!(!e.startsWith(t)||e===t))try{await p(e)&&(await fs.promises.rmdir(e),await d(n__default.default.dirname(e),t));}catch(r){r instanceof Error&&"code"in r&&(r.code==="ENOENT"||r.code==="ENOTDIR")||console.warn(`Failed to clean up directory ${e}:`,logger.getErrorMessage(r));}};exports.deleteFile=y;exports.fileExists=f;exports.isDirectoryEmpty=p;exports.readFileContent=u;exports.removeEmptyParentDirectories=d;exports.renameFile=v;exports.safeRename=l;exports.writeFileContent=g;//# sourceMappingURL=fs.cjs.map
//# sourceMappingURL=fs.cjs.map