UNPKG

@alexaegis/logging

Version:

Minimal logging tools

1 lines 4.28 kB
{"version":3,"file":"index.cjs","names":[],"sources":["../src/logger/create-logger.function.ts","../src/logger/log-level.enum.ts","../src/logger/log-level.enum.option.ts","../src/logger/noop-logger.const.ts","../src/logger/logger.option.ts"],"sourcesContent":["import type { Defined } from '@alexaegis/common';\nimport { Logger, type ISettingsParam } from 'tslog';\n\nexport interface LoggerCustomOptions {\n\t/**\n\t * @defaultValue false\n\t */\n\ttimestamps?: boolean;\n}\n\nexport type LoggerOptions<L = unknown> = LoggerCustomOptions & ISettingsParam<L>;\nexport type NormalizedLoggerOptions<L = unknown> = Defined<LoggerCustomOptions> & ISettingsParam<L>;\n\nexport const prettyLogTemplateTimestamp = '{{dateIsoStr}}\\t';\nexport const prettyLogTemplateBody = '{{logLevelName}}:{{nameWithDelimiterPrefix}}\\t';\n\nexport const normalizeLoggerOptions = <L = unknown>(\n\toptions?: LoggerOptions<L>,\n): NormalizedLoggerOptions<L> => {\n\tconst timestamps = options?.timestamps ?? false;\n\n\treturn {\n\t\tname: 'log',\n\t\ttimestamps,\n\t\tprettyLogTemplate: timestamps\n\t\t\t? prettyLogTemplateTimestamp + prettyLogTemplateBody\n\t\t\t: prettyLogTemplateBody,\n\t\t...options,\n\t} as NormalizedLoggerOptions<L>;\n};\n\nexport const createLogger = <L = unknown>(options?: LoggerOptions<L>): Logger<L> => {\n\treturn new Logger(normalizeLoggerOptions(options));\n};\n","export enum LogLevel {\n\tOFF = 1_000_000,\n\tFATAL = 6,\n\tERROR = 5,\n\tWARN = 4,\n\tINFO = 3,\n\tDEBUG = 2,\n\tTRACE = 1,\n\tSILLY = 0,\n}\n\nexport type LogLevelKeys = keyof typeof LogLevel;\n\nexport const logLevelKeys = Object.values(LogLevel).filter(\n\t(valueOrKey) => typeof valueOrKey === 'string',\n);\n\nexport const logLevelValues = Object.values(LogLevel).filter(\n\t(valueOrKey) => typeof valueOrKey === 'number',\n);\n\nexport const isLogLevelEnumValue = (o: unknown): o is LogLevel => {\n\treturn logLevelValues.includes(o as LogLevel);\n};\n\nexport const isLogLevelEnumKey = (o: unknown): o is LogLevelKeys => {\n\treturn logLevelKeys.includes(o as string);\n};\n","import { LogLevel } from './log-level.enum.js';\n\nexport interface LogLevelOption {\n\t/**\n\t * A minimum logLevel\n\t *\n\t * @defaultValue LogLevel.INFO\n\t */\n\tlogLevel?: LogLevel;\n}\n\nexport type NormalizedLogLevelOption = Required<LogLevelOption>;\n\nexport const normalizeLogLevelOption = (options?: LogLevelOption): NormalizedLogLevelOption => {\n\treturn {\n\t\tlogLevel: options?.logLevel ?? LogLevel.INFO,\n\t};\n};\n","import { createLogger } from './create-logger.function.js';\nimport { LogLevel } from './log-level.enum.js';\n\n/**\n * Acts as the default logger that does not do anything.\n */\nexport const noopLogger = createLogger({ type: 'hidden', minLevel: LogLevel.OFF });\n","import type { Logger } from 'tslog';\nimport { noopLogger } from './noop-logger.const.js';\n\nexport interface LoggerOption<LogObj = unknown> {\n\t/**\n\t * An optional Logger target.\n\t *\n\t * @defaultValue undefined\n\t */\n\tlogger?: Logger<LogObj>;\n}\n\nexport type NormalizedLoggerOption<LogObj = unknown> = Required<LoggerOption<LogObj>>;\n\nexport const normalizeLoggerOption = <LogObj = unknown>(\n\toptions?: LoggerOption<LogObj>,\n): NormalizedLoggerOption<LogObj> => {\n\treturn {\n\t\tlogger: options?.logger ?? (noopLogger as Logger<LogObj>),\n\t};\n};\n"],"mappings":";;;AAaA,IAAa,6BAA6B;AAC1C,IAAa,wBAAwB;AAErC,IAAa,0BACZ,YACgC;CAChC,MAAM,aAAa,SAAS,cAAc;CAE1C,OAAO;EACN,MAAM;EACN;EACA,mBAAmB,aAChB,iEACA;EACH,GAAG;CACJ;AACD;AAEA,IAAa,gBAA6B,YAA0C;CACnF,OAAO,IAAI,MAAA,OAAO,uBAAuB,OAAO,CAAC;AAClD;;;ACjCA,IAAY,WAAL,yBAAA,UAAA;CACN,SAAA,SAAA,SAAA,OAAA;CACA,SAAA,SAAA,WAAA,KAAA;CACA,SAAA,SAAA,WAAA,KAAA;CACA,SAAA,SAAA,UAAA,KAAA;CACA,SAAA,SAAA,UAAA,KAAA;CACA,SAAA,SAAA,WAAA,KAAA;CACA,SAAA,SAAA,WAAA,KAAA;CACA,SAAA,SAAA,WAAA,KAAA;;AACD,EAAA,CAAA,CAAA;AAIA,IAAa,eAAe,OAAO,OAAO,QAAQ,CAAC,CAAC,QAClD,eAAe,OAAO,eAAe,QACvC;AAEA,IAAa,iBAAiB,OAAO,OAAO,QAAQ,CAAC,CAAC,QACpD,eAAe,OAAO,eAAe,QACvC;AAEA,IAAa,uBAAuB,MAA8B;CACjE,OAAO,eAAe,SAAS,CAAa;AAC7C;AAEA,IAAa,qBAAqB,MAAkC;CACnE,OAAO,aAAa,SAAS,CAAW;AACzC;;;ACdA,IAAa,2BAA2B,YAAuD;CAC9F,OAAO,EACN,UAAU,SAAS,YAAY,SAAS,KACzC;AACD;;;;;;ACXA,IAAa,aAAa,aAAa;CAAE,MAAM;CAAU,UAAU,SAAS;AAAI,CAAC;;;ACQjF,IAAa,yBACZ,YACoC;CACpC,OAAO,EACN,QAAQ,SAAS,UAAW,WAC7B;AACD"}