1 line
No EOL
4.7 KiB
Text
1 line
No EOL
4.7 KiB
Text
{"version":3,"sources":["../src/logger.ts"],"sourcesContent":["import crossFetch from \"cross-fetch\"\nimport { nomeVariavel } from \"./variaveisComuns\"\n\nconst LOKI_BASE_URL = \"https://log.idz.one\"\nconst LOKI_ENDPOINT = \"/loki/api/v1/push\"\nexport type tipoLokiObjeto = {\n streams: {\n stream: {\n [k: string]: string\n }\n values: [string, string][]\n }[]\n}\n\nexport const postLogger = async ({\n objeto,\n}: {\n objeto: tipoLokiObjeto\n}): Promise<[objeto: tipoLokiObjeto, erro?: string]> => {\n const response = await crossFetch(`${LOKI_BASE_URL}${LOKI_ENDPOINT}`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(objeto),\n }).catch((a) => a)\n if (!response.ok) {\n return [objeto, `Erro ${response.status}: ${await response?.text?.()}`]\n }\n return [objeto]\n}\n\nlet cwd = \"\"\n\n/** define a localização da pasta do projeto */\nexport const defineCwd = (novoCwd: string) => {\n cwd = novoCwd\n}\n\ntype tipoLevel = \"info\" | \"warn\" | \"error\"\n\ntype tipoOpSessao = {\n inquilino: string\n usuario: string\n parametros?: { [k: string]: string }\n}\n\ntype tipoLog = {\n detalhes?: unknown[]\n __filename?: string\n local?: string\n parametros?: { [k: string]: string }\n}\n\nexport type tipoLoggerLog = (\n level: tipoLevel,\n mensagem: string,\n op_tipoLog?: tipoLog,\n) => Promise<[objeto: tipoLokiObjeto, erro?: string]>\n\nexport type TipoLoggerSessao = (sess: tipoOpSessao) => tipoLoggerLog\n\nexport type tipoLogger = (amb: {\n app: string\n eProducao: boolean\n parametros?: {\n [k: string]: string\n }\n}) => TipoLoggerSessao\n\nexport const logger: tipoLogger =\n ({ app: app_e, eProducao, parametros: parametrosAmbiente }) =>\n ({ inquilino, usuario, parametros: parametrosSessao }) =>\n async (level, mensagem, op_tipoLog) => {\n let {\n __filename,\n detalhes,\n local,\n parametros: parametrosLog,\n } = op_tipoLog || {}\n\n const app = `${eProducao ? \"\" : \"DEV-\"}${app_e}`\n\n if (cwd && __filename) {\n __filename = __filename.replace(cwd, \"\")\n }\n\n if (local) {\n detalhes = [`${nomeVariavel({ local })}=\"${local}\"`, ...(detalhes || [])]\n }\n\n if (__filename) {\n detalhes = [\n `${nomeVariavel({ __filename })}=\"${__filename}\"`,\n ...(detalhes || []),\n ]\n }\n\n const timestamp = `${Date.now()}000000`\n\n const mainLog = detalhes?.length\n ? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(\" | \")}`\n : mensagem\n\n const payload: tipoLokiObjeto[\"streams\"][number] = {\n stream: {\n app,\n inquilino,\n usuario,\n level,\n ...(parametrosAmbiente || {}),\n ...(parametrosSessao || {}),\n ...(parametrosLog || {}),\n },\n values: [\n [\n timestamp,\n mainLog, // Linha de log direta\n ],\n ],\n }\n\n const objeto: tipoLokiObjeto = { streams: [payload] }\n\n const response = await postLogger({ objeto })\n\n return response\n }\n"],"mappings":"AAAA,OAAOA,MAAgB,cACvB,OAAS,gBAAAC,MAAoB,oBAE7B,MAAMC,EAAgB,sBAChBC,EAAgB,oBAUTC,EAAa,MAAO,CAC/B,OAAAC,CACF,IAEwD,CACtD,MAAMC,EAAW,MAAMN,EAAW,GAAGE,CAAa,GAAGC,CAAa,GAAI,CACpE,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAUE,CAAM,CAC7B,CAAC,EAAE,MAAOE,GAAMA,CAAC,EACjB,OAAKD,EAAS,GAGP,CAACD,CAAM,EAFL,CAACA,EAAQ,QAAQC,EAAS,MAAM,KAAK,MAAMA,GAAU,OAAO,CAAC,EAAE,CAG1E,EAEA,IAAIE,EAAM,GAGH,MAAMC,EAAaC,GAAoB,CAC5CF,EAAME,CACR,EAiCaC,EACX,CAAC,CAAE,IAAKC,EAAO,UAAAC,EAAW,WAAYC,CAAmB,IACzD,CAAC,CAAE,UAAAC,EAAW,QAAAC,EAAS,WAAYC,CAAiB,IACpD,MAAOC,EAAOC,EAAUC,IAAe,CACrC,GAAI,CACF,WAAAC,EACA,SAAAC,EACA,MAAAC,EACA,WAAYC,CACd,EAAIJ,GAAc,CAAC,EAEnB,MAAMK,EAAM,GAAGZ,EAAY,GAAK,MAAM,GAAGD,CAAK,GAE1CJ,GAAOa,IACTA,EAAaA,EAAW,QAAQb,EAAK,EAAE,GAGrCe,IACFD,EAAW,CAAC,GAAGrB,EAAa,CAAE,MAAAsB,CAAM,CAAC,CAAC,KAAKA,CAAK,IAAK,GAAID,GAAY,CAAC,CAAE,GAGtED,IACFC,EAAW,CACT,GAAGrB,EAAa,CAAE,WAAAoB,CAAW,CAAC,CAAC,KAAKA,CAAU,IAC9C,GAAIC,GAAY,CAAC,CACnB,GAGF,MAAMI,EAAY,GAAG,KAAK,IAAI,CAAC,SAEzBC,EAAUL,GAAU,OACtB,GAAGH,CAAQ,MAAMG,EAAS,IAAKM,GAAM,KAAK,UAAUA,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,GACnET,EAoBEd,EAAyB,CAAE,QAAS,CAlBS,CACjD,OAAQ,CACN,IAAAoB,EACA,UAAAV,EACA,QAAAC,EACA,MAAAE,EACA,GAAIJ,GAAsB,CAAC,EAC3B,GAAIG,GAAoB,CAAC,EACzB,GAAIO,GAAiB,CAAC,CACxB,EACA,OAAQ,CACN,CACEE,EACAC,CACF,CACF,CACF,CAEkD,CAAE,EAIpD,OAFiB,MAAMvB,EAAW,CAAE,OAAAC,CAAO,CAAC,CAG9C","names":["crossFetch","nomeVariavel","LOKI_BASE_URL","LOKI_ENDPOINT","postLogger","objeto","response","a","cwd","defineCwd","novoCwd","logger","app_e","eProducao","parametrosAmbiente","inquilino","usuario","parametrosSessao","level","mensagem","op_tipoLog","__filename","detalhes","local","parametrosLog","app","timestamp","mainLog","d"]} |