{"version":3,"sources":["../../../src/func/Save/save.ts","../../../src/config/index.ts"],"sourcesContent":["import {format} from 'prettier';\nimport fs from 'fs';\nimport {configStore} from '../../config/index.ts';\nimport {ISaveBatch, ISaveFile} from '../../types.ts';\nimport ora from 'ora';\nimport chalk from 'chalk';\nimport makeDir from 'make-dir';\n\nconst writeFs = async ({\n  data,\n  fileName,\n  location,\n}: ISaveFile): Promise<fs.WriteStream> => {\n  // eslint-disable-next-line no-async-promise-executor\n  return new Promise(async (resolve, reject) => {\n    const dir = await makeDir(location);\n    if (dir) {\n      const file = fs\n        .createWriteStream(location + '/' + fileName)\n        .once('open', () => {\n          file.write(data);\n          file.end();\n        })\n        .once('error', error => {\n          reject(error);\n        })\n        .once('finish', () => {\n          resolve(file);\n        });\n    }\n  });\n};\n\nconst getPrettierFileData = async (\n  data: unknown,\n  beautify = true\n): Promise<string> => {\n  if (beautify) {\n    const beauty = await format(`${data}`, configStore?.prettier);\n    return `${beauty}`;\n  }\n  return `${data}`;\n};\n\nexport async function save({\n  fileName,\n  data,\n  location,\n  beautify,\n  extention,\n  comment,\n}: ISaveFile) {\n  if (data) {\n    const spinner = ora(\n      chalk.gray(' ├ Saving :\"' + fileName + '\" in :\"' + location + '\"')\n    );\n    try {\n      const fileData = await getPrettierFileData(data, beautify);\n      const dataStr = comment ? `\\n /* ${comment} */\\n` + fileData : fileData;\n      await writeFs({\n        data: dataStr,\n        fileName: fileName + extention,\n        location: configStore?.outDir + '/' + location,\n      });\n      spinner.succeed();\n    } catch (error) {\n      spinner.fail();\n      console.error(chalk.redBright(' └ ' + error));\n    }\n  }\n}\n\nexport function saveBatch({files, location, beautify, extention}: ISaveBatch) {\n  const promisses = files.map(file => {\n    if (file.data.length) {\n      return save({\n        data: file.data,\n        fileName: file.name,\n        beautify,\n        location,\n        extention,\n        comment: file.comment,\n      });\n    } else {\n      return null;\n      // console.warn(\n      //   chalk.green(\n      //     ` └ ${file.name} in ${location} not saved duo to empty string! `\n      //   )\n      // );\n    }\n  });\n  return Promise.all(promisses);\n}\n","import chalk from 'chalk';\nimport ora from 'ora';\nimport {cosmiconfig} from 'cosmiconfig';\nimport {IConfig} from '../types.ts';\nimport {ConfigStore} from './store/store.ts';\nconst spinner = ora('get hookgenrc config file');\nconst explorer = () => cosmiconfig('hookgenrc');\n// eslint-disable-next-line prefer-const\nexport let configStore: ConfigStore | undefined = undefined;\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n//@ts-ignore\nexport async function getConfig(): Promise<IConfig | undefined> {\n  spinner.start();\n  try {\n    const configFile = await explorer().load('./hookgenrc.json');\n    if (configFile?.isEmpty) {\n      spinner.warn();\n      console.warn(chalk.yellow(' └ codegen file is empty!'));\n      return Promise.resolve(undefined);\n    } else {\n      spinner.succeed();\n      configStore = new ConfigStore(configFile?.config as IConfig);\n      return configFile?.config as IConfig;\n    }\n  } catch (error) {\n    spinner.fail();\n    console.error(\n      chalk.bgRedBright(error ? error : ' └ Error get config file')\n    );\n    throw new Error(\n      chalk.bgRedBright(error ? error : ' └ Error get config file')\n    );\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAqB;AACrB,gBAAe;;;ACDf,mBAAkB;AAClB,iBAAgB;AAChB,yBAA0B;AAG1B,IAAM,cAAU,WAAAA,SAAI,2BAA2B;AAGxC,IAAI,cAAuC;;;ADJlD,IAAAC,cAAgB;AAChB,IAAAC,gBAAkB;AAClB,sBAAoB;AAEpB,IAAM,UAAU,CAAO,OAImB,iBAJnB,KAImB,WAJnB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF,GAA0C;AAExC,SAAO,IAAI,QAAQ,CAAO,SAAS,WAAW;AAC5C,UAAM,MAAM,UAAM,gBAAAC,SAAQ,QAAQ;AAClC,QAAI,KAAK;AACP,YAAM,OAAO,UAAAC,QACV,kBAAkB,WAAW,MAAM,QAAQ,EAC3C,KAAK,QAAQ,MAAM;AAClB,aAAK,MAAM,IAAI;AACf,aAAK,IAAI;AAAA,MACX,CAAC,EACA,KAAK,SAAS,WAAS;AACtB,eAAO,KAAK;AAAA,MACd,CAAC,EACA,KAAK,UAAU,MAAM;AACpB,gBAAQ,IAAI;AAAA,MACd,CAAC;AAAA,IACL;AAAA,EACF,EAAC;AACH;AAEA,IAAM,sBAAsB,CAC1B,MACA,WAAW,SACS;AApCtB;AAqCE,MAAI,UAAU;AACZ,UAAM,SAAS,UAAM,wBAAO,GAAG,IAAI,KAAI,wCAAa,QAAQ;AAC5D,WAAO,GAAG,MAAM;AAAA,EAClB;AACA,SAAO,GAAG,IAAI;AAChB;AAEA,SAAsB,KAAK,IAOb;AAAA,6CAPa;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAc;AAnDd;AAoDE,QAAI,MAAM;AACR,YAAMC,eAAU,YAAAC;AAAA,QACd,cAAAC,QAAM,KAAK,sBAAiB,WAAW,YAAY,WAAW,GAAG;AAAA,MACnE;AACA,UAAI;AACF,cAAM,WAAW,MAAM,oBAAoB,MAAM,QAAQ;AACzD,cAAM,UAAU,UAAU;AAAA,MAAS,OAAO;AAAA,IAAU,WAAW;AAC/D,cAAM,QAAQ;AAAA,UACZ,MAAM;AAAA,UACN,UAAU,WAAW;AAAA,UACrB,YAAU,wCAAa,UAAS,MAAM;AAAA,QACxC,CAAC;AACD,QAAAF,SAAQ,QAAQ;AAAA,MAClB,SAAS,OAAO;AACd,QAAAA,SAAQ,KAAK;AACb,gBAAQ,MAAM,cAAAE,QAAM,UAAU,aAAQ,KAAK,CAAC;AAAA,MAC9C;AAAA,IACF;AAAA,EACF;AAAA;AAEO,SAAS,UAAU,EAAC,OAAO,UAAU,UAAU,UAAS,GAAe;AAC5E,QAAM,YAAY,MAAM,IAAI,UAAQ;AAClC,QAAI,KAAK,KAAK,QAAQ;AACpB,aAAO,KAAK;AAAA,QACV,MAAM,KAAK;AAAA,QACX,UAAU,KAAK;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,KAAK;AAAA,MAChB,CAAC;AAAA,IACH,OAAO;AACL,aAAO;AAAA,IAMT;AAAA,EACF,CAAC;AACD,SAAO,QAAQ,IAAI,SAAS;AAC9B;","names":["ora","import_ora","import_chalk","makeDir","fs","spinner","ora","chalk"]}