{"ast":null,"code":"\"use strict\";\n\nconst fs = require(\"./utils/fs\");\n\nconst write = require(\"./write\");\n\nconst validate = require(\"./utils/validate\");\n\nconst validateInput = (methodName, path, data, options) => {\n  const methodSignature = `${methodName}(path, data, [options])`;\n  validate.argument(methodSignature, \"path\", path, [\"string\"]);\n  validate.argument(methodSignature, \"data\", data, [\"string\", \"buffer\"]);\n  validate.options(methodSignature, \"options\", options, {\n    mode: [\"string\", \"number\"]\n  });\n}; // ---------------------------------------------------------\n// SYNC\n// ---------------------------------------------------------\n\n\nconst appendSync = (path, data, options) => {\n  try {\n    fs.appendFileSync(path, data, options);\n  } catch (err) {\n    if (err.code === \"ENOENT\") {\n      // Parent directory doesn't exist, so just pass the task to `write`,\n      // which will create the folder and file.\n      write.sync(path, data, options);\n    } else {\n      throw err;\n    }\n  }\n}; // ---------------------------------------------------------\n// ASYNC\n// ---------------------------------------------------------\n\n\nconst appendAsync = (path, data, options) => {\n  return new Promise((resolve, reject) => {\n    fs.appendFile(path, data, options).then(resolve).catch(err => {\n      if (err.code === \"ENOENT\") {\n        // Parent directory doesn't exist, so just pass the task to `write`,\n        // which will create the folder and file.\n        write.async(path, data, options).then(resolve, reject);\n      } else {\n        reject(err);\n      }\n    });\n  });\n}; // ---------------------------------------------------------\n// API\n// ---------------------------------------------------------\n\n\nexports.validateInput = validateInput;\nexports.sync = appendSync;\nexports.async = appendAsync;","map":{"version":3,"sources":["D:/Development/Work/CENOS/cenos-ui/node_modules/fs-jetpack/lib/append.js"],"names":["fs","require","write","validate","validateInput","methodName","path","data","options","methodSignature","argument","mode","appendSync","appendFileSync","err","code","sync","appendAsync","Promise","resolve","reject","appendFile","then","catch","async","exports"],"mappings":"AAAA;;AAEA,MAAMA,EAAE,GAAGC,OAAO,CAAC,YAAD,CAAlB;;AACA,MAAMC,KAAK,GAAGD,OAAO,CAAC,SAAD,CAArB;;AACA,MAAME,QAAQ,GAAGF,OAAO,CAAC,kBAAD,CAAxB;;AAEA,MAAMG,aAAa,GAAG,CAACC,UAAD,EAAaC,IAAb,EAAmBC,IAAnB,EAAyBC,OAAzB,KAAqC;AACzD,QAAMC,eAAe,GAAI,GAAEJ,UAAW,yBAAtC;AACAF,EAAAA,QAAQ,CAACO,QAAT,CAAkBD,eAAlB,EAAmC,MAAnC,EAA2CH,IAA3C,EAAiD,CAAC,QAAD,CAAjD;AACAH,EAAAA,QAAQ,CAACO,QAAT,CAAkBD,eAAlB,EAAmC,MAAnC,EAA2CF,IAA3C,EAAiD,CAAC,QAAD,EAAW,QAAX,CAAjD;AACAJ,EAAAA,QAAQ,CAACK,OAAT,CAAiBC,eAAjB,EAAkC,SAAlC,EAA6CD,OAA7C,EAAsD;AACpDG,IAAAA,IAAI,EAAE,CAAC,QAAD,EAAW,QAAX;AAD8C,GAAtD;AAGD,CAPD,C,CASA;AACA;AACA;;;AAEA,MAAMC,UAAU,GAAG,CAACN,IAAD,EAAOC,IAAP,EAAaC,OAAb,KAAyB;AAC1C,MAAI;AACFR,IAAAA,EAAE,CAACa,cAAH,CAAkBP,IAAlB,EAAwBC,IAAxB,EAA8BC,OAA9B;AACD,GAFD,CAEE,OAAOM,GAAP,EAAY;AACZ,QAAIA,GAAG,CAACC,IAAJ,KAAa,QAAjB,EAA2B;AACzB;AACA;AACAb,MAAAA,KAAK,CAACc,IAAN,CAAWV,IAAX,EAAiBC,IAAjB,EAAuBC,OAAvB;AACD,KAJD,MAIO;AACL,YAAMM,GAAN;AACD;AACF;AACF,CAZD,C,CAcA;AACA;AACA;;;AAEA,MAAMG,WAAW,GAAG,CAACX,IAAD,EAAOC,IAAP,EAAaC,OAAb,KAAyB;AAC3C,SAAO,IAAIU,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtCpB,IAAAA,EAAE,CAACqB,UAAH,CAAcf,IAAd,EAAoBC,IAApB,EAA0BC,OAA1B,EACGc,IADH,CACQH,OADR,EAEGI,KAFH,CAEST,GAAG,IAAI;AACZ,UAAIA,GAAG,CAACC,IAAJ,KAAa,QAAjB,EAA2B;AACzB;AACA;AACAb,QAAAA,KAAK,CAACsB,KAAN,CAAYlB,IAAZ,EAAkBC,IAAlB,EAAwBC,OAAxB,EAAiCc,IAAjC,CAAsCH,OAAtC,EAA+CC,MAA/C;AACD,OAJD,MAIO;AACLA,QAAAA,MAAM,CAACN,GAAD,CAAN;AACD;AACF,KAVH;AAWD,GAZM,CAAP;AAaD,CAdD,C,CAgBA;AACA;AACA;;;AAEAW,OAAO,CAACrB,aAAR,GAAwBA,aAAxB;AACAqB,OAAO,CAACT,IAAR,GAAeJ,UAAf;AACAa,OAAO,CAACD,KAAR,GAAgBP,WAAhB","sourcesContent":["\"use strict\";\n\nconst fs = require(\"./utils/fs\");\nconst write = require(\"./write\");\nconst validate = require(\"./utils/validate\");\n\nconst validateInput = (methodName, path, data, options) => {\n  const methodSignature = `${methodName}(path, data, [options])`;\n  validate.argument(methodSignature, \"path\", path, [\"string\"]);\n  validate.argument(methodSignature, \"data\", data, [\"string\", \"buffer\"]);\n  validate.options(methodSignature, \"options\", options, {\n    mode: [\"string\", \"number\"]\n  });\n};\n\n// ---------------------------------------------------------\n// SYNC\n// ---------------------------------------------------------\n\nconst appendSync = (path, data, options) => {\n  try {\n    fs.appendFileSync(path, data, options);\n  } catch (err) {\n    if (err.code === \"ENOENT\") {\n      // Parent directory doesn't exist, so just pass the task to `write`,\n      // which will create the folder and file.\n      write.sync(path, data, options);\n    } else {\n      throw err;\n    }\n  }\n};\n\n// ---------------------------------------------------------\n// ASYNC\n// ---------------------------------------------------------\n\nconst appendAsync = (path, data, options) => {\n  return new Promise((resolve, reject) => {\n    fs.appendFile(path, data, options)\n      .then(resolve)\n      .catch(err => {\n        if (err.code === \"ENOENT\") {\n          // Parent directory doesn't exist, so just pass the task to `write`,\n          // which will create the folder and file.\n          write.async(path, data, options).then(resolve, reject);\n        } else {\n          reject(err);\n        }\n      });\n  });\n};\n\n// ---------------------------------------------------------\n// API\n// ---------------------------------------------------------\n\nexports.validateInput = validateInput;\nexports.sync = appendSync;\nexports.async = appendAsync;\n"]},"metadata":{},"sourceType":"script"}