1*082815dcSEvan Baconimport fs from 'fs'; 2*082815dcSEvan Baconimport path from 'path'; 3*082815dcSEvan Bacon 4*082815dcSEvan Bacon/** A basic function that copies a single file to another file location. */ 5*082815dcSEvan Baconexport async function copyFilePathToPathAsync(src: string, dest: string): Promise<void> { 6*082815dcSEvan Bacon const srcFile = await fs.promises.readFile(src); 7*082815dcSEvan Bacon await fs.promises.mkdir(path.dirname(dest), { recursive: true }); 8*082815dcSEvan Bacon await fs.promises.writeFile(dest, srcFile); 9*082815dcSEvan Bacon} 10*082815dcSEvan Bacon 11*082815dcSEvan Bacon/** Remove a single file (not directory). Returns `true` if a file was actually deleted. */ 12*082815dcSEvan Baconexport function removeFile(filePath: string): boolean { 13*082815dcSEvan Bacon try { 14*082815dcSEvan Bacon fs.unlinkSync(filePath); 15*082815dcSEvan Bacon return true; 16*082815dcSEvan Bacon } catch (error: any) { 17*082815dcSEvan Bacon // Skip if the remove did nothing. 18*082815dcSEvan Bacon if (error.code === 'ENOENT') { 19*082815dcSEvan Bacon return false; 20*082815dcSEvan Bacon } 21*082815dcSEvan Bacon throw error; 22*082815dcSEvan Bacon } 23*082815dcSEvan Bacon} 24