@coozzy/error 1.5.14 → 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.
- package/index.d.ts +8 -1
- package/index.js +24 -3
- package/package.json +1 -1
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
|
-
|
|
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
|
-
|
|
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.
|
|
145
|
+
logger.warning(msg, err);
|
|
125
146
|
}
|
|
126
147
|
|
|
127
148
|
return callback({
|