@percepta/logger 0.0.7 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -0
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/logger/MosaicLogger.cjs.map +1 -1
- package/dist/logger/MosaicLogger.js.map +1 -1
- package/dist/logger/createLogFactory.cjs.map +1 -1
- package/dist/logger/createLogFactory.js.map +1 -1
- package/dist/logger/createLoggerRuntime.cjs +16 -0
- package/dist/logger/createLoggerRuntime.cjs.map +1 -0
- package/dist/logger/createLoggerRuntime.d.cts +18 -0
- package/dist/logger/createLoggerRuntime.d.cts.map +1 -0
- package/dist/logger/createLoggerRuntime.d.ts +18 -0
- package/dist/logger/createLoggerRuntime.d.ts.map +1 -0
- package/dist/logger/createLoggerRuntime.js +15 -0
- package/dist/logger/createLoggerRuntime.js.map +1 -0
- package/dist/tracer/createTracerFactory.cjs.map +1 -1
- package/dist/tracer/createTracerFactory.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -4,8 +4,10 @@ const require_MosaicLogger = require("./logger/MosaicLogger.cjs");
|
|
|
4
4
|
const require_createLogFactory = require("./logger/createLogFactory.cjs");
|
|
5
5
|
const require_createPinoInstance = require("./logger/createPinoInstance.cjs");
|
|
6
6
|
const require_createTracerFactory = require("./tracer/createTracerFactory.cjs");
|
|
7
|
+
const require_createLoggerRuntime = require("./logger/createLoggerRuntime.cjs");
|
|
7
8
|
exports.MosaicLogger = require_MosaicLogger.MosaicLogger;
|
|
8
9
|
exports.createLogFactory = require_createLogFactory.createLogFactory;
|
|
10
|
+
exports.createLoggerRuntime = require_createLoggerRuntime.createLoggerRuntime;
|
|
9
11
|
exports.createPinoInstance = require_createPinoInstance.createPinoInstance;
|
|
10
12
|
exports.createTracerFactory = require_createTracerFactory.createTracerFactory;
|
|
11
13
|
exports.redactValueForGrafana = require_redactValueForGrafana.redactValueForGrafana;
|
package/dist/index.d.cts
CHANGED
|
@@ -2,5 +2,6 @@ import { LogArgs, MosaicLogger } from "./logger/MosaicLogger.cjs";
|
|
|
2
2
|
import { LogFactory, createLogFactory } from "./logger/createLogFactory.cjs";
|
|
3
3
|
import { createPinoInstance } from "./logger/createPinoInstance.cjs";
|
|
4
4
|
import { Tracer, TracerFactory, createTracerFactory } from "./tracer/createTracerFactory.cjs";
|
|
5
|
+
import { CreateLoggerRuntimeConfig, LoggerRuntime, createLoggerRuntime } from "./logger/createLoggerRuntime.cjs";
|
|
5
6
|
import { redactValueForGrafana } from "./utils/redactValueForGrafana.cjs";
|
|
6
|
-
export { LogArgs, LogFactory, MosaicLogger, Tracer, TracerFactory, createLogFactory, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
|
7
|
+
export { CreateLoggerRuntimeConfig, LogArgs, LogFactory, LoggerRuntime, MosaicLogger, Tracer, TracerFactory, createLogFactory, createLoggerRuntime, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ import { LogArgs, MosaicLogger } from "./logger/MosaicLogger.js";
|
|
|
2
2
|
import { LogFactory, createLogFactory } from "./logger/createLogFactory.js";
|
|
3
3
|
import { createPinoInstance } from "./logger/createPinoInstance.js";
|
|
4
4
|
import { Tracer, TracerFactory, createTracerFactory } from "./tracer/createTracerFactory.js";
|
|
5
|
+
import { CreateLoggerRuntimeConfig, LoggerRuntime, createLoggerRuntime } from "./logger/createLoggerRuntime.js";
|
|
5
6
|
import { redactValueForGrafana } from "./utils/redactValueForGrafana.js";
|
|
6
|
-
export { LogArgs, LogFactory, MosaicLogger, Tracer, TracerFactory, createLogFactory, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
|
7
|
+
export { CreateLoggerRuntimeConfig, LogArgs, LogFactory, LoggerRuntime, MosaicLogger, Tracer, TracerFactory, createLogFactory, createLoggerRuntime, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
package/dist/index.js
CHANGED
|
@@ -3,4 +3,5 @@ import { MosaicLogger } from "./logger/MosaicLogger.js";
|
|
|
3
3
|
import { createLogFactory } from "./logger/createLogFactory.js";
|
|
4
4
|
import { createPinoInstance } from "./logger/createPinoInstance.js";
|
|
5
5
|
import { createTracerFactory } from "./tracer/createTracerFactory.js";
|
|
6
|
-
|
|
6
|
+
import { createLoggerRuntime } from "./logger/createLoggerRuntime.js";
|
|
7
|
+
export { MosaicLogger, createLogFactory, createLoggerRuntime, createPinoInstance, createTracerFactory, redactValueForGrafana };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicLogger.cjs","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"sourcesContent":["import { isEmpty, isError, mapValues } from \"lodash-es\";\nimport {
|
|
1
|
+
{"version":3,"file":"MosaicLogger.cjs","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"sourcesContent":["import { isEmpty, isError, mapValues } from \"lodash-es\";\nimport type { Logger as PinoLogger } from \"pino\";\n\nexport interface LogArgs {\n safe?: Record<string, unknown>;\n unsafe?: Record<string, unknown>;\n}\n\nenum LogLevel {\n INFO = \"info\",\n ERROR = \"error\",\n WARN = \"warn\",\n DEBUG = \"debug\",\n}\n\nexport class MosaicLogger {\n public constructor(\n private pino: PinoLogger,\n private redactValue: (value: unknown) => string,\n ) {}\n\n public child(context: LogArgs): MosaicLogger {\n return new MosaicLogger(\n this.pino.child(this.resolveArgs(context)),\n this.redactValue,\n );\n }\n\n public info(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.INFO, args, message, error);\n }\n\n public warn(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.WARN, args, message, error);\n }\n\n public debug(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.DEBUG, args, message, error);\n }\n\n public error(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.ERROR, args, message, error);\n }\n\n private log(\n level: LogLevel,\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.pino[level](\n {\n ...(args != null && { ...this.resolveArgs(args) }),\n ...(error != null && { err: this.serializeError(error) }),\n },\n message,\n );\n }\n\n private resolveArgs({ safe, unsafe }: LogArgs): Record<string, unknown> {\n return {\n ...safe,\n ...(unsafe != null &&\n mapValues(unsafe, (value) => this.redactValue(value))),\n };\n }\n\n private serializeError(error: unknown): SerializedError {\n if (!isError(error)) {\n return { message: this.redactValue(String(error)) };\n }\n\n const { name, message, stack, ...errorProps } = error;\n\n return {\n type: name,\n message: this.redactValue(message),\n stack,\n ...(!isEmpty(errorProps) && { props: this.redactValue(errorProps) }),\n };\n }\n}\n\ninterface SerializedError {\n type?: string;\n message?: string;\n stack?: string;\n props?: string;\n}\n"],"mappings":";;;AAeA,IAAa,eAAb,MAAa,aAAa;CACxB,YACE,MACA,aACA;AAFQ,OAAA,OAAA;AACA,OAAA,cAAA;;CAGV,MAAa,SAAgC;AAC3C,SAAO,IAAI,aACT,KAAK,KAAK,MAAM,KAAK,YAAY,QAAQ,CAAC,EAC1C,KAAK,YACN;;CAGH,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,IACE,OACA,MACA,SACA,OACM;AACN,OAAK,KAAK,OACR;GACE,GAAI,QAAQ,QAAQ,EAAE,GAAG,KAAK,YAAY,KAAK,EAAE;GACjD,GAAI,SAAS,QAAQ,EAAE,KAAK,KAAK,eAAe,MAAM,EAAE;GACzD,EACD,QACD;;CAGH,YAAoB,EAAE,MAAM,UAA4C;AACtE,SAAO;GACL,GAAG;GACH,GAAI,UAAU,SAAA,GAAA,UAAA,WACF,SAAS,UAAU,KAAK,YAAY,MAAM,CAAC;GACxD;;CAGH,eAAuB,OAAiC;AACtD,MAAI,EAAA,GAAA,UAAA,SAAS,MAAM,CACjB,QAAO,EAAE,SAAS,KAAK,YAAY,OAAO,MAAM,CAAC,EAAE;EAGrD,MAAM,EAAE,MAAM,SAAS,OAAO,GAAG,eAAe;AAEhD,SAAO;GACL,MAAM;GACN,SAAS,KAAK,YAAY,QAAQ;GAClC;GACA,GAAI,EAAA,GAAA,UAAA,SAAS,WAAW,IAAI,EAAE,OAAO,KAAK,YAAY,WAAW,EAAE;GACpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicLogger.js","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"sourcesContent":["import { isEmpty, isError, mapValues } from \"lodash-es\";\nimport {
|
|
1
|
+
{"version":3,"file":"MosaicLogger.js","names":[],"sources":["../../src/logger/MosaicLogger.ts"],"sourcesContent":["import { isEmpty, isError, mapValues } from \"lodash-es\";\nimport type { Logger as PinoLogger } from \"pino\";\n\nexport interface LogArgs {\n safe?: Record<string, unknown>;\n unsafe?: Record<string, unknown>;\n}\n\nenum LogLevel {\n INFO = \"info\",\n ERROR = \"error\",\n WARN = \"warn\",\n DEBUG = \"debug\",\n}\n\nexport class MosaicLogger {\n public constructor(\n private pino: PinoLogger,\n private redactValue: (value: unknown) => string,\n ) {}\n\n public child(context: LogArgs): MosaicLogger {\n return new MosaicLogger(\n this.pino.child(this.resolveArgs(context)),\n this.redactValue,\n );\n }\n\n public info(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.INFO, args, message, error);\n }\n\n public warn(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.WARN, args, message, error);\n }\n\n public debug(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.DEBUG, args, message, error);\n }\n\n public error(\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.log(LogLevel.ERROR, args, message, error);\n }\n\n private log(\n level: LogLevel,\n args: LogArgs | undefined,\n message: string,\n error?: unknown,\n ): void {\n this.pino[level](\n {\n ...(args != null && { ...this.resolveArgs(args) }),\n ...(error != null && { err: this.serializeError(error) }),\n },\n message,\n );\n }\n\n private resolveArgs({ safe, unsafe }: LogArgs): Record<string, unknown> {\n return {\n ...safe,\n ...(unsafe != null &&\n mapValues(unsafe, (value) => this.redactValue(value))),\n };\n }\n\n private serializeError(error: unknown): SerializedError {\n if (!isError(error)) {\n return { message: this.redactValue(String(error)) };\n }\n\n const { name, message, stack, ...errorProps } = error;\n\n return {\n type: name,\n message: this.redactValue(message),\n stack,\n ...(!isEmpty(errorProps) && { props: this.redactValue(errorProps) }),\n };\n }\n}\n\ninterface SerializedError {\n type?: string;\n message?: string;\n stack?: string;\n props?: string;\n}\n"],"mappings":";;AAeA,IAAa,eAAb,MAAa,aAAa;CACxB,YACE,MACA,aACA;AAFQ,OAAA,OAAA;AACA,OAAA,cAAA;;CAGV,MAAa,SAAgC;AAC3C,SAAO,IAAI,aACT,KAAK,KAAK,MAAM,KAAK,YAAY,QAAQ,CAAC,EAC1C,KAAK,YACN;;CAGH,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,KACE,MACA,SACA,OACM;AACN,OAAK,IAAA,QAAmB,MAAM,SAAS,MAAM;;CAG/C,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,MACE,MACA,SACA,OACM;AACN,OAAK,IAAA,SAAoB,MAAM,SAAS,MAAM;;CAGhD,IACE,OACA,MACA,SACA,OACM;AACN,OAAK,KAAK,OACR;GACE,GAAI,QAAQ,QAAQ,EAAE,GAAG,KAAK,YAAY,KAAK,EAAE;GACjD,GAAI,SAAS,QAAQ,EAAE,KAAK,KAAK,eAAe,MAAM,EAAE;GACzD,EACD,QACD;;CAGH,YAAoB,EAAE,MAAM,UAA4C;AACtE,SAAO;GACL,GAAG;GACH,GAAI,UAAU,QACZ,UAAU,SAAS,UAAU,KAAK,YAAY,MAAM,CAAC;GACxD;;CAGH,eAAuB,OAAiC;AACtD,MAAI,CAAC,QAAQ,MAAM,CACjB,QAAO,EAAE,SAAS,KAAK,YAAY,OAAO,MAAM,CAAC,EAAE;EAGrD,MAAM,EAAE,MAAM,SAAS,OAAO,GAAG,eAAe;AAEhD,SAAO;GACL,MAAM;GACN,SAAS,KAAK,YAAY,QAAQ;GAClC;GACA,GAAI,CAAC,QAAQ,WAAW,IAAI,EAAE,OAAO,KAAK,YAAY,WAAW,EAAE;GACpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createLogFactory.cjs","names":["redactValueForGrafana","MosaicLogger"],"sources":["../../src/logger/createLogFactory.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"createLogFactory.cjs","names":["redactValueForGrafana","MosaicLogger"],"sources":["../../src/logger/createLogFactory.ts"],"sourcesContent":["import type { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { Logger as PinoLogger } from \"pino\";\nimport { redactValueForGrafana } from \"../utils/redactValueForGrafana\";\nimport { type LogArgs, MosaicLogger } from \"./MosaicLogger\";\n\nexport interface LogFactory {\n getLogger: () => MosaicLogger;\n withLogContext: <TReturn>(\n context: LogArgs,\n callback: () => TReturn,\n ) => TReturn;\n}\n\nexport function createLogFactory(\n pino: PinoLogger,\n asyncLocalStorageFactory: () => AsyncLocalStorage<MosaicLogger>,\n redactValue: (value: unknown) => string = redactValueForGrafana,\n): LogFactory {\n const baseLogger = new MosaicLogger(pino, redactValue);\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n function getLogger(): MosaicLogger {\n return asyncLocalStorage.getStore() ?? baseLogger;\n }\n\n return {\n getLogger,\n withLogContext: (context, callback) => {\n return asyncLocalStorage.run(getLogger().child(context), callback);\n },\n };\n}\n"],"mappings":";;;AAaA,SAAgB,iBACd,MACA,0BACA,cAA0CA,8BAAAA,uBAC9B;CACZ,MAAM,aAAa,IAAIC,qBAAAA,aAAa,MAAM,YAAY;CACtD,MAAM,oBAAoB,0BAA0B;CAEpD,SAAS,YAA0B;AACjC,SAAO,kBAAkB,UAAU,IAAI;;AAGzC,QAAO;EACL;EACA,iBAAiB,SAAS,aAAa;AACrC,UAAO,kBAAkB,IAAI,WAAW,CAAC,MAAM,QAAQ,EAAE,SAAS;;EAErE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createLogFactory.js","names":[],"sources":["../../src/logger/createLogFactory.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"createLogFactory.js","names":[],"sources":["../../src/logger/createLogFactory.ts"],"sourcesContent":["import type { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { Logger as PinoLogger } from \"pino\";\nimport { redactValueForGrafana } from \"../utils/redactValueForGrafana\";\nimport { type LogArgs, MosaicLogger } from \"./MosaicLogger\";\n\nexport interface LogFactory {\n getLogger: () => MosaicLogger;\n withLogContext: <TReturn>(\n context: LogArgs,\n callback: () => TReturn,\n ) => TReturn;\n}\n\nexport function createLogFactory(\n pino: PinoLogger,\n asyncLocalStorageFactory: () => AsyncLocalStorage<MosaicLogger>,\n redactValue: (value: unknown) => string = redactValueForGrafana,\n): LogFactory {\n const baseLogger = new MosaicLogger(pino, redactValue);\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n function getLogger(): MosaicLogger {\n return asyncLocalStorage.getStore() ?? baseLogger;\n }\n\n return {\n getLogger,\n withLogContext: (context, callback) => {\n return asyncLocalStorage.run(getLogger().child(context), callback);\n },\n };\n}\n"],"mappings":";;;AAaA,SAAgB,iBACd,MACA,0BACA,cAA0C,uBAC9B;CACZ,MAAM,aAAa,IAAI,aAAa,MAAM,YAAY;CACtD,MAAM,oBAAoB,0BAA0B;CAEpD,SAAS,YAA0B;AACjC,SAAO,kBAAkB,UAAU,IAAI;;AAGzC,QAAO;EACL;EACA,iBAAiB,SAAS,aAAa;AACrC,UAAO,kBAAkB,IAAI,WAAW,CAAC,MAAM,QAAQ,EAAE,SAAS;;EAErE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_createLogFactory = require("./createLogFactory.cjs");
|
|
3
|
+
const require_createPinoInstance = require("./createPinoInstance.cjs");
|
|
4
|
+
const require_createTracerFactory = require("../tracer/createTracerFactory.cjs");
|
|
5
|
+
let node_async_hooks = require("node:async_hooks");
|
|
6
|
+
//#region src/logger/createLoggerRuntime.ts
|
|
7
|
+
function createLoggerRuntime({ env, pino = require_createPinoInstance.createPinoInstance(env) }) {
|
|
8
|
+
return {
|
|
9
|
+
...require_createLogFactory.createLogFactory(pino, () => new node_async_hooks.AsyncLocalStorage()),
|
|
10
|
+
...require_createTracerFactory.createTracerFactory(() => new node_async_hooks.AsyncLocalStorage())
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
exports.createLoggerRuntime = createLoggerRuntime;
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=createLoggerRuntime.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLoggerRuntime.cjs","names":["createPinoInstance","createLogFactory","AsyncLocalStorage","createTracerFactory"],"sources":["../../src/logger/createLoggerRuntime.ts"],"sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { BaseEnvConfig } from \"@percepta/utils\";\nimport type { Logger as PinoLogger } from \"pino\";\nimport {\n createTracerFactory,\n type Tracer,\n type TracerFactory,\n} from \"../tracer/createTracerFactory\";\nimport { createLogFactory, type LogFactory } from \"./createLogFactory\";\nimport { createPinoInstance } from \"./createPinoInstance\";\nimport type { MosaicLogger } from \"./MosaicLogger\";\n\nexport interface CreateLoggerRuntimeConfig {\n readonly env: BaseEnvConfig;\n readonly pino?: PinoLogger;\n}\n\nexport type LoggerRuntime = LogFactory & TracerFactory;\n\nexport function createLoggerRuntime({\n env,\n pino = createPinoInstance(env),\n}: CreateLoggerRuntimeConfig): LoggerRuntime {\n return {\n ...createLogFactory(pino, () => new AsyncLocalStorage<MosaicLogger>()),\n ...createTracerFactory(() => new AsyncLocalStorage<Tracer>()),\n };\n}\n"],"mappings":";;;;;;AAmBA,SAAgB,oBAAoB,EAClC,KACA,OAAOA,2BAAAA,mBAAmB,IAAI,IACa;AAC3C,QAAO;EACL,GAAGC,yBAAAA,iBAAiB,YAAY,IAAIC,iBAAAA,mBAAiC,CAAC;EACtE,GAAGC,4BAAAA,0BAA0B,IAAID,iBAAAA,mBAA2B,CAAC;EAC9D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { LogFactory } from "./createLogFactory.cjs";
|
|
2
|
+
import { TracerFactory } from "../tracer/createTracerFactory.cjs";
|
|
3
|
+
import { Logger } from "pino";
|
|
4
|
+
import { BaseEnvConfig } from "@percepta/utils";
|
|
5
|
+
|
|
6
|
+
//#region src/logger/createLoggerRuntime.d.ts
|
|
7
|
+
interface CreateLoggerRuntimeConfig {
|
|
8
|
+
readonly env: BaseEnvConfig;
|
|
9
|
+
readonly pino?: Logger;
|
|
10
|
+
}
|
|
11
|
+
type LoggerRuntime = LogFactory & TracerFactory;
|
|
12
|
+
declare function createLoggerRuntime({
|
|
13
|
+
env,
|
|
14
|
+
pino
|
|
15
|
+
}: CreateLoggerRuntimeConfig): LoggerRuntime;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { CreateLoggerRuntimeConfig, LoggerRuntime, createLoggerRuntime };
|
|
18
|
+
//# sourceMappingURL=createLoggerRuntime.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLoggerRuntime.d.cts","names":[],"sources":["../../src/logger/createLoggerRuntime.ts"],"mappings":";;;;;;UAYiB,yBAAA;EAAA,SACN,GAAA,EAAK,aAAA;EAAA,SACL,IAAA,GAAO,MAAA;AAAA;AAAA,KAGN,aAAA,GAAgB,UAAA,GAAa,aAAA;AAAA,iBAEzB,mBAAA,CAAA;EACd,GAAA;EACA;AAAA,GACC,yBAAA,GAA4B,aAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { LogFactory } from "./createLogFactory.js";
|
|
2
|
+
import { TracerFactory } from "../tracer/createTracerFactory.js";
|
|
3
|
+
import { BaseEnvConfig } from "@percepta/utils";
|
|
4
|
+
import { Logger } from "pino";
|
|
5
|
+
|
|
6
|
+
//#region src/logger/createLoggerRuntime.d.ts
|
|
7
|
+
interface CreateLoggerRuntimeConfig {
|
|
8
|
+
readonly env: BaseEnvConfig;
|
|
9
|
+
readonly pino?: Logger;
|
|
10
|
+
}
|
|
11
|
+
type LoggerRuntime = LogFactory & TracerFactory;
|
|
12
|
+
declare function createLoggerRuntime({
|
|
13
|
+
env,
|
|
14
|
+
pino
|
|
15
|
+
}: CreateLoggerRuntimeConfig): LoggerRuntime;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { CreateLoggerRuntimeConfig, LoggerRuntime, createLoggerRuntime };
|
|
18
|
+
//# sourceMappingURL=createLoggerRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLoggerRuntime.d.ts","names":[],"sources":["../../src/logger/createLoggerRuntime.ts"],"mappings":";;;;;;UAYiB,yBAAA;EAAA,SACN,GAAA,EAAK,aAAA;EAAA,SACL,IAAA,GAAO,MAAA;AAAA;AAAA,KAGN,aAAA,GAAgB,UAAA,GAAa,aAAA;AAAA,iBAEzB,mBAAA,CAAA;EACd,GAAA;EACA;AAAA,GACC,yBAAA,GAA4B,aAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createLogFactory } from "./createLogFactory.js";
|
|
2
|
+
import { createPinoInstance } from "./createPinoInstance.js";
|
|
3
|
+
import { createTracerFactory } from "../tracer/createTracerFactory.js";
|
|
4
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
5
|
+
//#region src/logger/createLoggerRuntime.ts
|
|
6
|
+
function createLoggerRuntime({ env, pino = createPinoInstance(env) }) {
|
|
7
|
+
return {
|
|
8
|
+
...createLogFactory(pino, () => new AsyncLocalStorage()),
|
|
9
|
+
...createTracerFactory(() => new AsyncLocalStorage())
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { createLoggerRuntime };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=createLoggerRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLoggerRuntime.js","names":[],"sources":["../../src/logger/createLoggerRuntime.ts"],"sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { BaseEnvConfig } from \"@percepta/utils\";\nimport type { Logger as PinoLogger } from \"pino\";\nimport {\n createTracerFactory,\n type Tracer,\n type TracerFactory,\n} from \"../tracer/createTracerFactory\";\nimport { createLogFactory, type LogFactory } from \"./createLogFactory\";\nimport { createPinoInstance } from \"./createPinoInstance\";\nimport type { MosaicLogger } from \"./MosaicLogger\";\n\nexport interface CreateLoggerRuntimeConfig {\n readonly env: BaseEnvConfig;\n readonly pino?: PinoLogger;\n}\n\nexport type LoggerRuntime = LogFactory & TracerFactory;\n\nexport function createLoggerRuntime({\n env,\n pino = createPinoInstance(env),\n}: CreateLoggerRuntimeConfig): LoggerRuntime {\n return {\n ...createLogFactory(pino, () => new AsyncLocalStorage<MosaicLogger>()),\n ...createTracerFactory(() => new AsyncLocalStorage<Tracer>()),\n };\n}\n"],"mappings":";;;;;AAmBA,SAAgB,oBAAoB,EAClC,KACA,OAAO,mBAAmB,IAAI,IACa;AAC3C,QAAO;EACL,GAAG,iBAAiB,YAAY,IAAI,mBAAiC,CAAC;EACtE,GAAG,0BAA0B,IAAI,mBAA2B,CAAC;EAC9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTracerFactory.cjs","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"createTracerFactory.cjs","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"sourcesContent":["import type { AsyncLocalStorage } from \"node:async_hooks\";\n\nexport interface Tracer {\n traceId: string;\n}\n\nexport interface TracerFactory {\n getTracer: () => Tracer | undefined;\n withTracer: <TReturn>(tracer: Tracer, callback: () => TReturn) => TReturn;\n}\n\nexport function createTracerFactory(\n asyncLocalStorageFactory: () => AsyncLocalStorage<Tracer>,\n): TracerFactory {\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n return {\n getTracer: () => asyncLocalStorage.getStore(),\n withTracer: (tracer, callback) => asyncLocalStorage.run(tracer, callback),\n };\n}\n"],"mappings":";AAWA,SAAgB,oBACd,0BACe;CACf,MAAM,oBAAoB,0BAA0B;AAEpD,QAAO;EACL,iBAAiB,kBAAkB,UAAU;EAC7C,aAAa,QAAQ,aAAa,kBAAkB,IAAI,QAAQ,SAAS;EAC1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTracerFactory.js","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"createTracerFactory.js","names":[],"sources":["../../src/tracer/createTracerFactory.ts"],"sourcesContent":["import type { AsyncLocalStorage } from \"node:async_hooks\";\n\nexport interface Tracer {\n traceId: string;\n}\n\nexport interface TracerFactory {\n getTracer: () => Tracer | undefined;\n withTracer: <TReturn>(tracer: Tracer, callback: () => TReturn) => TReturn;\n}\n\nexport function createTracerFactory(\n asyncLocalStorageFactory: () => AsyncLocalStorage<Tracer>,\n): TracerFactory {\n const asyncLocalStorage = asyncLocalStorageFactory();\n\n return {\n getTracer: () => asyncLocalStorage.getStore(),\n withTracer: (tracer, callback) => asyncLocalStorage.run(tracer, callback),\n };\n}\n"],"mappings":";AAWA,SAAgB,oBACd,0BACe;CACf,MAAM,oBAAoB,0BAA0B;AAEpD,QAAO;EACL,iBAAiB,kBAAkB,UAAU;EAC7C,aAAa,QAAQ,aAAa,kBAAkB,IAAI,QAAQ,SAAS;EAC1E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@percepta/logger",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Mosaic logging with redaction",
|
|
6
6
|
"files": [
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/lodash-es": "^4.17.12",
|
|
38
|
-
"@percepta/build": "
|
|
38
|
+
"@percepta/build": "1.1.0"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "tsdown",
|