trpc-monitoring-middleware 0.0.1 → 0.0.2

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/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # tRPC monitoring middleware
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/trpc-monitoring-middleware.svg)](https://www.npmjs.com/package/trpc-monitoring-middleware)
4
+ [![license](https://img.shields.io/npm/l/trpc-monitoring-middleware.svg)](https://github.com/fuegoio/trpc-monitoring-middleware/blob/main/LICENSE)
5
+
3
6
  A simple tRPC middleware for monitoring and logging procedures.
4
7
 
5
8
  ## Features
@@ -61,6 +64,13 @@ Error codes classified as internal errors:
61
64
  - `SERVICE_UNAVAILABLE`
62
65
  - `GATEWAY_TIMEOUT`
63
66
 
67
+ ### Debug Logging
68
+
69
+ The middleware automatically logs all tRPC procedure executions in `DEBUG` level with detailed information:
70
+
71
+ - **Start events**: Logged when a procedure starts execution with path and type
72
+ - **Completion events**: Logged when a procedure completes successfully with duration
73
+
64
74
  ## Configuration
65
75
 
66
76
  ```typescript
@@ -76,12 +86,19 @@ const monitoringMiddleware = createMonitoringMiddleware({
76
86
  // Custom error logging
77
87
  console.error(message, errorData);
78
88
  },
89
+ debug: (data, message) => {
90
+ // Custom debug logging
91
+ console.log(message, data);
92
+ },
79
93
  child: (data) => {
80
94
  // Return a new logger instance with additional context
81
95
  return {
82
96
  error: (errorData, message) => {
83
97
  console.error(message, { ...data, ...errorData });
84
98
  },
99
+ debug: (debugData, message) => {
100
+ console.log(message, { ...data, ...debugData });
101
+ },
85
102
  child: (additionalData) => {
86
103
  return this.child({ ...data, ...additionalData });
87
104
  },
package/dist/index.d.mts CHANGED
@@ -3,6 +3,7 @@ import * as _trpc_server0 from "@trpc/server";
3
3
  //#region src/index.d.ts
4
4
  interface MonitoringMiddlewareCompatibleLogger {
5
5
  error: (error: Record<string, unknown>, message: string) => void;
6
+ debug: (data: Record<string, unknown>, message: string) => void;
6
7
  child: (data: Record<string, unknown>) => MonitoringMiddlewareCompatibleLogger;
7
8
  }
8
9
  interface MonitoringMiddlewareOptions {
package/dist/index.mjs CHANGED
@@ -67,8 +67,14 @@ function createMonitoringMiddleware(pluginOpts) {
67
67
  const procedureLogger = logger?.child({ procedure: meta });
68
68
  span.setAttributes(meta);
69
69
  try {
70
+ procedureLogger?.debug({ ...opts }, "[trpc] Starting procedure");
70
71
  const procedure = await opts.next({ ctx: { logger: procedureLogger } });
71
72
  handleProcedureCompletion(span, procedure, meta, procedureLogger);
73
+ procedureLogger?.debug({
74
+ ...opts,
75
+ ok: procedure.ok,
76
+ duration: performance.now() - start
77
+ }, "[trpc] Completed procedure");
72
78
  return procedure;
73
79
  } catch (error) {
74
80
  handleUnexpectedError(error, span, meta, procedureLogger, onInternalError);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "trpc-monitoring-middleware",
3
3
  "type": "module",
4
- "version": "0.0.1",
4
+ "version": "0.0.2",
5
5
  "description": "A tRPC middleware for monitoring procedures",
6
6
  "author": "Alexis Tacnet <alexistacnet@gmail.com>",
7
7
  "license": "MIT",