{"version":3,"sources":["../src/dir/create.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAWjD,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAsClG","file":"create.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 {existsSync, mkdirSync} from 'fs-extra';\n\nimport {Config} from '../config';\nimport type {FileOptions} from '../file/options';\nimport {jestEnv} from '../jest/env';\n\n/**\n * Create directory at target path. Fails when\n * @param path\n * @param options\n * @returns\n *\n * @category Files\n */\nexport async function dirCreate(cfg: Config, path: string, options?: FileOptions): Promise<boolean> {\n\tconst overwrite = typeof options?.overwrite === 'boolean' ? options?.overwrite : false;\n\n\tif (!cfg) {\n\t\treturn false;\n\t}\n\n\tconst autoMock = cfg.autoMockInJest && jestEnv();\n\tconst mockReads = autoMock || cfg.mocks.all || cfg.mocks.fileReads;\n\tconst mockWrites = autoMock || cfg.mocks.all || cfg.mocks.fileWrites;\n\n\treturn new Promise((resolve, reject) => {\n\t\tif (typeof path !== 'string') {\n\t\t\treject(new Error('Failed to createFolder during build - path argument was not a valid string.'));\n\t\t}\n\n\t\t// Assume success & return before the existSync read when read ops are mocked.\n\t\tif (mockReads) {\n\t\t\treturn resolve(true);\n\t\t}\n\n\t\tif (existsSync(path)) {\n\t\t\tif (overwrite !== true) {\n\t\t\t\treturn reject(new Error('createFolder failed during build - folder exists at path.'));\n\t\t\t} else {\n\t\t\t\treturn resolve(true);\n\t\t\t}\n\t\t}\n\n\t\t// Assume success & return when write ops are mocked.\n\t\tif (mockWrites) {\n\t\t\treturn resolve(true);\n\t\t}\n\n\t\tmkdirSync(path);\n\n\t\treturn resolve(true);\n\t});\n}\n"]}