@compas/server
Advanced tools
Comparing version 0.10.0 to 0.10.1
{ | ||
"name": "@compas/server", | ||
"version": "0.10.0", | ||
"version": "0.10.1", | ||
"description": "Koa server and common middleware", | ||
@@ -24,9 +24,9 @@ "exports": { | ||
"dependencies": { | ||
"@compas/stdlib": "0.10.0", | ||
"@compas/stdlib": "0.10.1", | ||
"@types/formidable": "2.0.6", | ||
"@types/koa": "2.14.0", | ||
"@types/koa": "2.15.0", | ||
"co-body": "6.1.0", | ||
"formidable": "2.1.1", | ||
"keygrip": "1.1.0", | ||
"koa": "2.15.0" | ||
"koa": "2.15.3" | ||
}, | ||
@@ -33,0 +33,0 @@ "author": { |
@@ -8,2 +8,3 @@ import { isProduction } from "@compas/stdlib"; | ||
import { notFoundHandler } from "./middleware/notFound.js"; | ||
import { sentry } from "./middleware/sentry.js"; | ||
@@ -82,2 +83,4 @@ /** | ||
app.use(sentry()); | ||
app.use(logMiddleware(app, opts.logOptions ?? {})); | ||
@@ -84,0 +87,0 @@ app.use(errorHandler(opts.errorOptions ?? {})); |
@@ -1,2 +0,2 @@ | ||
import { AppError, isProduction } from "@compas/stdlib"; | ||
import { _compasSentryExport, AppError, isProduction } from "@compas/stdlib"; | ||
@@ -33,2 +33,3 @@ /** | ||
const origErr = error; | ||
let err = error; | ||
@@ -42,2 +43,16 @@ let log = ctx.log.info; | ||
if (err.status >= 500) { | ||
if (_compasSentryExport) { | ||
if (err === origErr) { | ||
// An AppError.serverError was thrown. | ||
_compasSentryExport.captureException( | ||
new Error(err.key, { | ||
cause: err, | ||
}), | ||
); | ||
} else { | ||
// Something else was thrown. | ||
_compasSentryExport.captureException(origErr); | ||
} | ||
} | ||
log = ctx.log.error; | ||
@@ -44,0 +59,0 @@ } |
import { Transform } from "node:stream"; | ||
import { | ||
_compasSentryExport, | ||
AppError, | ||
@@ -44,3 +45,3 @@ eventStart, | ||
*/ | ||
function logInfo(ctx, startTime, length) { | ||
function logInfoAndEndTrace(ctx, startTime, length) { | ||
const duration = Math.round( | ||
@@ -83,4 +84,26 @@ Number(process.hrtime.bigint() - startTime) / 1000000, | ||
if (options.disableRootEvent !== true && ctx.method !== "OPTIONS") { | ||
if (_compasSentryExport) { | ||
const span = _compasSentryExport.getActiveSpan(); | ||
if (span) { | ||
span.description = ctx.event.name; | ||
span.updateName(ctx.event.name); | ||
} | ||
} | ||
eventStop(ctx.event); | ||
} | ||
if (_compasSentryExport) { | ||
const span = _compasSentryExport.getActiveSpan(); | ||
if (span) { | ||
span.setStatus( | ||
_compasSentryExport.getSpanStatusFromHttpCode(ctx.status), | ||
); | ||
span.setAttributes({ | ||
params: ctx.validatedParams, | ||
query: ctx.validatedQuery, | ||
}); | ||
span.end(); | ||
} | ||
} | ||
} | ||
@@ -101,2 +124,6 @@ | ||
}); | ||
if (_compasSentryExport) { | ||
_compasSentryExport.captureException(error); | ||
} | ||
}); | ||
@@ -130,4 +157,5 @@ | ||
} | ||
if (!isNil(responseLength)) { | ||
logInfo(ctx, startTime, responseLength); | ||
logInfoAndEndTrace(ctx, startTime, responseLength); | ||
return; | ||
@@ -141,3 +169,3 @@ } else if (ctx.body && ctx.body.readable) { | ||
logInfo(ctx, startTime, isNil(counter) ? 0 : counter.length); | ||
logInfoAndEndTrace(ctx, startTime, isNil(counter) ? 0 : counter.length); | ||
}; | ||
@@ -144,0 +172,0 @@ } |
39721
27
1131
+ Added@compas/stdlib@0.10.1(transitive)
+ Added@types/koa@2.15.0(transitive)
+ Added@types/node@20.12.7(transitive)
+ Addedabort-controller@3.0.0(transitive)
+ Addedbase64-js@1.5.1(transitive)
+ Addedbuffer@6.0.3(transitive)
+ Addeddotenv@16.4.5(transitive)
+ Addedevent-target-shim@5.0.1(transitive)
+ Addedevents@3.3.0(transitive)
+ Addedieee754@1.2.1(transitive)
+ Addedkoa@2.15.3(transitive)
+ Addedpino@8.20.0(transitive)
+ Addedpino-abstract-transport@1.2.0(transitive)
+ Addedprocess@0.11.10(transitive)
+ Addedreadable-stream@4.7.0(transitive)
+ Addedsplit2@4.2.0(transitive)
+ Addedstring_decoder@1.3.0(transitive)
- Removed@compas/stdlib@0.10.0(transitive)
- Removed@types/koa@2.14.0(transitive)
- Removed@types/node@20.10.8(transitive)
- Removeddotenv@16.3.1(transitive)
- Removedkoa@2.15.0(transitive)
- Removedpino@8.17.2(transitive)
Updated@compas/stdlib@0.10.1
Updated@types/koa@2.15.0
Updatedkoa@2.15.3