{"ast":null,"code":"\"use strict\";\n\nconst fs = require(\"./utils/fs\");\n\nconst validate = require(\"./utils/validate\");\n\nconst validateInput = (methodName, path) => {\n  const methodSignature = `${methodName}(path)`;\n  validate.argument(methodSignature, \"path\", path, [\"string\"]);\n}; // ---------------------------------------------------------\n// Sync\n// ---------------------------------------------------------\n\n\nconst existsSync = path => {\n  try {\n    const stat = fs.statSync(path);\n\n    if (stat.isDirectory()) {\n      return \"dir\";\n    } else if (stat.isFile()) {\n      return \"file\";\n    }\n\n    return \"other\";\n  } catch (err) {\n    if (err.code !== \"ENOENT\") {\n      throw err;\n    }\n  }\n\n  return false;\n}; // ---------------------------------------------------------\n// Async\n// ---------------------------------------------------------\n\n\nconst existsAsync = path => {\n  return new Promise((resolve, reject) => {\n    fs.stat(path).then(stat => {\n      if (stat.isDirectory()) {\n        resolve(\"dir\");\n      } else if (stat.isFile()) {\n        resolve(\"file\");\n      } else {\n        resolve(\"other\");\n      }\n    }).catch(err => {\n      if (err.code === \"ENOENT\") {\n        resolve(false);\n      } else {\n        reject(err);\n      }\n    });\n  });\n}; // ---------------------------------------------------------\n// API\n// ---------------------------------------------------------\n\n\nexports.validateInput = validateInput;\nexports.sync = existsSync;\nexports.async = existsAsync;","map":{"version":3,"sources":["D:/Development/Work/CENOS/cenos-ui/node_modules/fs-jetpack/lib/exists.js"],"names":["fs","require","validate","validateInput","methodName","path","methodSignature","argument","existsSync","stat","statSync","isDirectory","isFile","err","code","existsAsync","Promise","resolve","reject","then","catch","exports","sync","async"],"mappings":"AAAA;;AAEA,MAAMA,EAAE,GAAGC,OAAO,CAAC,YAAD,CAAlB;;AACA,MAAMC,QAAQ,GAAGD,OAAO,CAAC,kBAAD,CAAxB;;AAEA,MAAME,aAAa,GAAG,CAACC,UAAD,EAAaC,IAAb,KAAsB;AAC1C,QAAMC,eAAe,GAAI,GAAEF,UAAW,QAAtC;AACAF,EAAAA,QAAQ,CAACK,QAAT,CAAkBD,eAAlB,EAAmC,MAAnC,EAA2CD,IAA3C,EAAiD,CAAC,QAAD,CAAjD;AACD,CAHD,C,CAKA;AACA;AACA;;;AAEA,MAAMG,UAAU,GAAGH,IAAI,IAAI;AACzB,MAAI;AACF,UAAMI,IAAI,GAAGT,EAAE,CAACU,QAAH,CAAYL,IAAZ,CAAb;;AACA,QAAII,IAAI,CAACE,WAAL,EAAJ,EAAwB;AACtB,aAAO,KAAP;AACD,KAFD,MAEO,IAAIF,IAAI,CAACG,MAAL,EAAJ,EAAmB;AACxB,aAAO,MAAP;AACD;;AACD,WAAO,OAAP;AACD,GARD,CAQE,OAAOC,GAAP,EAAY;AACZ,QAAIA,GAAG,CAACC,IAAJ,KAAa,QAAjB,EAA2B;AACzB,YAAMD,GAAN;AACD;AACF;;AAED,SAAO,KAAP;AACD,CAhBD,C,CAkBA;AACA;AACA;;;AAEA,MAAME,WAAW,GAAGV,IAAI,IAAI;AAC1B,SAAO,IAAIW,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtClB,IAAAA,EAAE,CAACS,IAAH,CAAQJ,IAAR,EACGc,IADH,CACQV,IAAI,IAAI;AACZ,UAAIA,IAAI,CAACE,WAAL,EAAJ,EAAwB;AACtBM,QAAAA,OAAO,CAAC,KAAD,CAAP;AACD,OAFD,MAEO,IAAIR,IAAI,CAACG,MAAL,EAAJ,EAAmB;AACxBK,QAAAA,OAAO,CAAC,MAAD,CAAP;AACD,OAFM,MAEA;AACLA,QAAAA,OAAO,CAAC,OAAD,CAAP;AACD;AACF,KATH,EAUGG,KAVH,CAUSP,GAAG,IAAI;AACZ,UAAIA,GAAG,CAACC,IAAJ,KAAa,QAAjB,EAA2B;AACzBG,QAAAA,OAAO,CAAC,KAAD,CAAP;AACD,OAFD,MAEO;AACLC,QAAAA,MAAM,CAACL,GAAD,CAAN;AACD;AACF,KAhBH;AAiBD,GAlBM,CAAP;AAmBD,CApBD,C,CAsBA;AACA;AACA;;;AAEAQ,OAAO,CAAClB,aAAR,GAAwBA,aAAxB;AACAkB,OAAO,CAACC,IAAR,GAAed,UAAf;AACAa,OAAO,CAACE,KAAR,GAAgBR,WAAhB","sourcesContent":["\"use strict\";\n\nconst fs = require(\"./utils/fs\");\nconst validate = require(\"./utils/validate\");\n\nconst validateInput = (methodName, path) => {\n  const methodSignature = `${methodName}(path)`;\n  validate.argument(methodSignature, \"path\", path, [\"string\"]);\n};\n\n// ---------------------------------------------------------\n// Sync\n// ---------------------------------------------------------\n\nconst existsSync = path => {\n  try {\n    const stat = fs.statSync(path);\n    if (stat.isDirectory()) {\n      return \"dir\";\n    } else if (stat.isFile()) {\n      return \"file\";\n    }\n    return \"other\";\n  } catch (err) {\n    if (err.code !== \"ENOENT\") {\n      throw err;\n    }\n  }\n\n  return false;\n};\n\n// ---------------------------------------------------------\n// Async\n// ---------------------------------------------------------\n\nconst existsAsync = path => {\n  return new Promise((resolve, reject) => {\n    fs.stat(path)\n      .then(stat => {\n        if (stat.isDirectory()) {\n          resolve(\"dir\");\n        } else if (stat.isFile()) {\n          resolve(\"file\");\n        } else {\n          resolve(\"other\");\n        }\n      })\n      .catch(err => {\n        if (err.code === \"ENOENT\") {\n          resolve(false);\n        } else {\n          reject(err);\n        }\n      });\n  });\n};\n\n// ---------------------------------------------------------\n// API\n// ---------------------------------------------------------\n\nexports.validateInput = validateInput;\nexports.sync = existsSync;\nexports.async = existsAsync;\n"]},"metadata":{},"sourceType":"script"}