{"version":3,"sources":["../src/fileToJson.ts"],"sourcesContent":["import { fromPairs } from '@lskjs/algos';\nimport { Err } from '@lskjs/err';\nimport { existsSync as exists } from 'fs';\nimport { readFile } from 'fs/promises';\nimport yaml from 'js-yaml';\n\nexport async function fileToJson(filename: string, { type = 'keyval' } = {}) {\n  if (!exists(filename)) return null;\n  try {\n    if (type === 'js') {\n      // eslint-disable-next-line import/no-dynamic-require\n      const data = require(filename);\n      delete require.cache[require.resolve(filename)];\n      return data;\n    }\n    const str = (await readFile(filename)).toString();\n    if (type === 'json') {\n      return JSON.parse(str);\n    }\n    if (type === 'keyval' || type === 'keyvalue' || type === 'env' || type === 'dotenv') {\n      if (!str) return [];\n      const keyvalues = String(str)\n        .split('\\n')\n        .map((a) => {\n          const s = a.trim();\n          if (s[0] === '#') return null;\n          if (s.indexOf('=') === -1) return null;\n          const delimiter = s.indexOf('=');\n          const key = s.substr(0, delimiter);\n          if (!key) return null;\n          const value = s.substr(delimiter + 1);\n          return [key, value];\n        })\n        .filter(Boolean) as [string, string][];\n      // console.log({ str, keyvalues });\n      return fromPairs(keyvalues);\n    }\n    if (type === 'yaml' || type === 'yml') {\n      return yaml.load(str);\n    }\n    throw new Err('!type', { data: { type } });\n  } catch (err) {\n    // TODO: обработать ошибку если\n    // eslint-disable-next-line no-console\n    console.error('fileToJson err', err, { filename, type });\n    return null;\n  }\n}\n\nexport default fileToJson;\n"],"mappings":"oUAAA,OAASA,aAAAA,MAAiB,eAC1B,OAASC,OAAAA,MAAW,aACpB,OAASC,cAAcC,MAAc,KACrC,OAASC,YAAAA,MAAgB,cACzB,OAAOC,MAAU,UAEjB,eAAsBC,EAAWC,EAAkB,CAAEC,KAAAA,EAAO,QAAQ,EAAK,CAAC,EAAC,CACzE,GAAI,CAACC,EAAOF,CAAAA,EAAW,OAAO,KAC9B,GAAI,CACF,GAAIC,IAAS,KAAM,CAEjB,IAAME,EAAOC,EAAQJ,CAAAA,EACrB,cAAOI,EAAQC,MAAMD,EAAQE,QAAQN,CAAAA,CAAAA,EAC9BG,CACT,CACA,IAAMI,GAAO,MAAMC,EAASR,CAAAA,GAAWS,SAAQ,EAC/C,GAAIR,IAAS,OACX,OAAOS,KAAKC,MAAMJ,CAAAA,EAEpB,GAAIN,IAAS,UAAYA,IAAS,YAAcA,IAAS,OAASA,IAAS,SAAU,CACnF,GAAI,CAACM,EAAK,MAAO,CAAA,EACjB,IAAMK,EAAYC,OAAON,CAAAA,EACtBO,MAAM;CAAA,EACNC,IAAKC,GAAAA,CACJ,IAAMC,EAAID,EAAEE,KAAI,EAEhB,GADID,EAAE,CAAA,IAAO,KACTA,EAAEE,QAAQ,GAAA,IAAS,GAAI,OAAO,KAClC,IAAMC,EAAYH,EAAEE,QAAQ,GAAA,EACtBE,EAAMJ,EAAEK,OAAO,EAAGF,CAAAA,EACxB,GAAI,CAACC,EAAK,OAAO,KACjB,IAAME,EAAQN,EAAEK,OAAOF,EAAY,CAAA,EACnC,MAAO,CAACC,EAAKE,EACf,CAAA,EACCC,OAAOC,OAAAA,EAEV,OAAOC,EAAUd,CAAAA,CACnB,CACA,GAAIX,IAAS,QAAUA,IAAS,MAC9B,OAAO0B,EAAKC,KAAKrB,CAAAA,EAEnB,MAAM,IAAIsB,EAAI,QAAS,CAAE1B,KAAM,CAAEF,KAAAA,CAAK,CAAE,CAAA,CAC1C,OAAS6B,EAAK,CAGZC,eAAQC,MAAM,iBAAkBF,EAAK,CAAE9B,SAAAA,EAAUC,KAAAA,CAAK,CAAA,EAC/C,IACT,CACF,CAzCsBF,EAAAA,EAAAA,cA2CtB,IAAAkC,EAAelC","names":["fromPairs","Err","existsSync","exists","readFile","yaml","fileToJson","filename","type","exists","data","require","cache","resolve","str","readFile","toString","JSON","parse","keyvalues","String","split","map","a","s","trim","indexOf","delimiter","key","substr","value","filter","Boolean","fromPairs","yaml","load","Err","err","console","error","fileToJson_default"]}