@storm-stack/core
Version:
A build toolkit and runtime used by Storm Software in TypeScript applications
1 lines • 4.97 kB
Source Map (JSON)
{"version":3,"sources":["../../src/lib/logger.ts"],"names":["createLog","__name","name","options","logLevel","LogLevelLabel","INFO","SILENT","noop","customLogger","type","args","getLogFn","getLogLevel","chalk","bold","hex","getColor","gray","join","trim","BADGE_COLORS","extendLog","logFn","inverse","split","map","char","charCodeAt","reduce","ret","charCode","length","titleCase"],"mappings":";;;;;;;;;;;;;;AA0BO,IAAMA,SAAAA,mBAAYC,wBAAA,CAAA,CACvBC,IAAAA,EACAC,OAAAA,GAOI,EAAC,KAAC;AAEN,EAAA,MAAMC,QAAAA,GAAWD,OAAAA,CAAQC,QAAAA,IAAYC,mBAAAA,CAAcC,IAAAA;AACnD,EAAA,IAAIF,QAAAA,KAAaC,oBAAcE,MAAAA,EAAQ;AACrC,IAAA,OAAOC,SAAAA;AACT,EAAA;AAEA,EAAA,IAAIL,QAAQM,YAAAA,EAAc;AACxB,IAAA,OAAON,OAAAA,CAAQM,YAAAA;AACjB,EAAA;AAEA,EAAA,OAAO,CAACC,IAAAA,EAAAA,GAAwBC,IAAAA,KAC9BC,eAAAA,CAASC,kBAAAA,CAAYH,IAAAA,CAAAA,EAAO;IAC1B,GAAGP,OAAAA;AACHC,IAAAA;AACF,GAAA,CAAA,CACE,CAAA,EAAGU,sBAAAA,CAAMC,IAAAA,CAAKC,GAAAA,CACZC,eAAAA,CAAS,OAAA,EAASd,OAAAA,CAAAA,CAAAA,CAElB,CAAA,WAAA,EAAcD,IAAAA,GAAO,IAAIA,IAAAA,CAAAA,CAAAA,GAAS,EAAA,CAAA,CAAA,EAAMY,sBAAAA,CAAMI,IAAAA,CAAK,IAAA,CAAA,CAAA,CAAO,CAAA,CAAA,EACxDP,IAAAA,CAAKQ,IAAAA,CAAK,GAAA,CAAA,CAAA,CAAA,CAAA,CAAQC,MAAI,CAAA;AAEhC,CAAA,EA/ByB,WAAA;AAiCzB,IAAMC,YAAAA,GAAe;AACnB,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA,SAAA;AACA,EAAA;;AAGK,IAAMC,SAAAA,mBAAYrB,wBAAA,CAAA,CAACsB,KAAAA,EAAcrB,IAAAA,KAAAA;AACtC,EAAA,OAAO,CAACQ,SAAwBC,IAAAA,KAC9BY,KAAAA,CACEb,MACA,CAAA,CAAA,EAAII,sBAAAA,CAAMU,OAAAA,CAAQR,GAAAA,CAChBK,YAAAA,CACEnB,IAAAA,CACGuB,MAAM,EAAA,CAAA,CACNC,IAAIC,CAAAA,IAAAA,KAAQA,KAAKC,UAAAA,CAAW,CAAA,CAAA,CAAA,CAC5BC,MAAAA,CAAO,CAACC,KAAKC,QAAAA,KAAaD,GAAAA,GAAMC,UAAU,CAAA,CAAA,GAAKV,aAAaW,MAAM,CAAA,IAClEX,YAAAA,CAAa,CAAA,CAAE,CAAA,CACpB,IAAIY,mBAAAA,CAAU/B,IAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,KAAMS,IAAAA,CAAKQ,IAAAA,CAAK,GAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAErD,CAAA,EAbyB,WAAA","file":"chunk-SFV4P2MX.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Storm Stack\n\n This code was released as part of the Storm Stack project. Storm Stack\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/storm-stack.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/storm-stack\n Documentation: https://docs.stormsoftware.com/projects/storm-stack\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { getLogFn, getLogLevel } from \"@storm-software/config-tools/logger\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { getColor } from \"@storm-software/config-tools/utilities/colors\";\nimport { noop } from \"@stryke/helpers/noop\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport chalk from \"chalk\";\nimport type { LogFn, ResolvedOptions, UserConfig } from \"../types\";\n\nexport const createLog = (\n name: string | null,\n options: Partial<\n | ResolvedOptions\n | UserConfig\n | {\n logLevel: LogLevelLabel;\n customLogger: LogFn;\n }\n > = {}\n): LogFn => {\n const logLevel = options.logLevel || LogLevelLabel.INFO;\n if (logLevel === LogLevelLabel.SILENT) {\n return noop;\n }\n\n if (options.customLogger) {\n return options.customLogger;\n }\n\n return (type: LogLevelLabel, ...args: string[]) =>\n getLogFn(getLogLevel(type), {\n ...options,\n logLevel\n })(\n `${chalk.bold.hex(\n getColor(\"brand\", options as Parameters<typeof getColor>[1])\n )(\n `storm-stack${name ? `:${name}` : \"\"} ${chalk.gray(\"> \")}`\n )}${args.join(\" \")} `.trim()\n );\n};\n\nconst BADGE_COLORS = [\n \"#00A0DD\",\n \"#6FCE4E\",\n \"#FBBF24\",\n \"#F43F5E\",\n \"#3B82F6\",\n \"#A855F7\",\n \"#469592\",\n \"#288EDF\",\n \"#10B981\",\n \"#EF4444\",\n \"#F0EC56\",\n \"#F472B6\",\n \"#22D3EE\",\n \"#EAB308\",\n \"#84CC16\",\n \"#F87171\",\n \"#0EA5E9\",\n \"#D946EF\",\n \"#FACC15\",\n \"#34D399\"\n] as const;\n\nexport const extendLog = (logFn: LogFn, name: string): LogFn => {\n return (type: LogLevelLabel, ...args: string[]) =>\n logFn(\n type,\n ` ${chalk.inverse.hex(\n BADGE_COLORS[\n name\n .split(\"\")\n .map(char => char.charCodeAt(0))\n .reduce((ret, charCode) => ret + charCode, 0) % BADGE_COLORS.length\n ] || BADGE_COLORS[0]\n )(` ${titleCase(name)} `)} ${args.join(\" \")} `\n );\n};\n"]}