@coozzy/error 1.5.13 → 1.6.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.
Files changed (3) hide show
  1. package/index.d.ts +8 -1
  2. package/index.js +24 -3
  3. package/package.json +2 -2
package/index.d.ts CHANGED
@@ -41,9 +41,16 @@ declare module CoozzyError {
41
41
 
42
42
  function httpErrorHandler(err: Error, req: Request, res: Response, next: NextFunction): Response;
43
43
 
44
+ interface GrpcLogContext {
45
+ caller?: string;
46
+ internal?: boolean;
47
+ m2m?: boolean;
48
+ }
49
+
44
50
  function grpcErrorHandler(
45
51
  callback: (error: { code: number; message: string } | null, response: any) => void,
46
- msg: string
52
+ msg: string,
53
+ logContext?: GrpcLogContext
47
54
  ): (err: unknown) => void;
48
55
 
49
56
  }
package/index.js CHANGED
@@ -116,12 +116,33 @@ module.exports.httpErrorHandler = function (err, req, res, next) {
116
116
  });
117
117
  };
118
118
 
119
- module.exports.grpcErrorHandler = (callback, msg) => (err) => {
119
+ /**
120
+ * @param {function} callback
121
+ * @param {string} msg
122
+ * @param {{caller?: string, internal?: boolean, m2m?: boolean}|undefined} logContext optional auth/context for log enrichment
123
+ */
124
+ module.exports.grpcErrorHandler = (callback, msg, logContext) => (err) => {
120
125
  const code = err.code || 2; // 2 = unknown in gRPC
121
- if (shouldLogError(code)) {
126
+
127
+ if (err && typeof err === 'object' && logContext) {
128
+ if (logContext.caller) {
129
+ err.caller = logContext.caller;
130
+ }
131
+ if (typeof logContext.internal === 'boolean') {
132
+ err.internal = logContext.internal;
133
+ }
134
+ if (logContext.m2m === true) {
135
+ err.m2m = true;
136
+ }
137
+ }
138
+
139
+ if (logContext && logContext.caller === 'standardimport') {
140
+ // Import validation/noise: keep visible with caller/internal for GCP filters, but avoid ERROR alerts
141
+ logger.warn(msg, err);
142
+ } else if (shouldLogError(code)) {
122
143
  logger.error(msg, err);
123
144
  } else {
124
- logger.debug(msg, err);
145
+ logger.warning(msg, err);
125
146
  }
126
147
 
127
148
  return callback({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coozzy/error",
3
- "version": "1.5.13",
3
+ "version": "1.6.0",
4
4
  "description": "Simplified error throwing and handling in the coozzy environment",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -14,7 +14,7 @@
14
14
  "author": "PROPbase AG",
15
15
  "license": "ISC",
16
16
  "dependencies": {
17
- "@coozzy/logger": "1.3.3",
17
+ "@coozzy/logger": "1.3.4",
18
18
  "@types/express": "4.17.21"
19
19
  }
20
20
  }