{"version":3,"sources":["../src/file/contents.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAY3C,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkBlG","file":"contents.d.ts","sourcesContent":["/**\n *\tMIT License\n *\n *\tCopyright (c) 2019 - 2022 Toreda, Inc.\n *\n *\tPermission is hereby granted, free of charge, to any person obtaining a copy\n *\tof this software and associated documentation files (the \"Software\"), to deal\n *\tin the Software without restriction, including without limitation the rights\n *\tto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *\tcopies of the Software, and to permit persons to whom the Software is\n *\tfurnished to do so, subject to the following conditions:\n\n * \tThe above copyright notice and this permission notice shall be included in all\n * \tcopies or substantial portions of the Software.\n *\n * \tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * \tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * \tSOFTWARE.\n *\n */\n\nimport type {FileOptions} from './options';\nimport {readFile} from 'fs-extra';\n\n/**\n * Get file contents as a string for target file found at `filePath`.\n * @param filePath\n * @param options\n * @returns\t\t\tFile contents as string when file is found at filePath, or null file is not found,\n *\t\t\t\t\tor the file could not be read due to permissions, or other errors.\n *\n * @category Files\n */\nexport async function fileContents(filePath: string, options?: FileOptions): Promise<string | null> {\n\tconst encoding = options && typeof options.encoding === 'string' ? options.encoding : 'utf8';\n\n\treturn new Promise((resolve, reject) => {\n\t\treadFile(filePath, encoding, (err, data: string) => {\n\t\t\tif (err) {\n\t\t\t\treturn reject(\n\t\t\t\t\tnew Error(`Build failed to get file contents from '${filePath}' - ${err.message}.`)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof data !== 'string') {\n\t\t\t\treturn resolve(null);\n\t\t\t}\n\n\t\t\tresolve(data);\n\t\t});\n\t});\n}\n"]}