@promster/express 7.0.5 → 7.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,11 +1,11 @@
1
1
  import type { TPromsterOptions } from '@promster/types';
2
2
  import type { TRequestRecorder } from '@promster/metrics';
3
- import { Application, Request, Response, NextFunction } from 'express';
3
+ import type { Application, Request, Response, NextFunction } from 'express';
4
4
  import { Prometheus } from '@promster/metrics';
5
5
  interface TApp extends Application {
6
6
  locals: Record<string, unknown>;
7
7
  }
8
- declare type TLocaleTarget = {
8
+ type TLocaleTarget = {
9
9
  app?: TApp;
10
10
  key: string;
11
11
  value: typeof Prometheus | TRequestRecorder;
@@ -15,7 +15,7 @@ declare const extractPath: (req: Request) => string;
15
15
  declare const getRequestRecorder: () => TRequestRecorder;
16
16
  declare const signalIsUp: () => void;
17
17
  declare const signalIsNotUp: () => void;
18
- declare type TMiddlewareOptions = {
18
+ type TMiddlewareOptions = {
19
19
  app?: TApp;
20
20
  options?: TPromsterOptions;
21
21
  };
@@ -9,6 +9,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
9
9
 
10
10
  var merge__default = /*#__PURE__*/_interopDefault(merge);
11
11
 
12
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
13
+
12
14
  const exposeOnLocals = ({
13
15
  app,
14
16
  key,
@@ -16,34 +18,26 @@ const exposeOnLocals = ({
16
18
  }) => {
17
19
  if (app !== null && app !== void 0 && app.locals) app.locals[key] = value;
18
20
  };
19
-
20
21
  const extractPath = req => req.originalUrl || req.url;
21
-
22
22
  let recordRequest;
23
23
  let upMetric;
24
-
25
24
  const getRequestRecorder = () => recordRequest;
26
-
27
25
  const signalIsUp = () => {
28
26
  if (!upMetric) {
29
27
  return;
30
28
  }
31
-
32
29
  upMetric.forEach(upMetricType => {
33
30
  upMetricType.set(1);
34
31
  });
35
32
  };
36
-
37
33
  const signalIsNotUp = () => {
38
34
  if (!upMetric) {
39
35
  return;
40
36
  }
41
-
42
37
  upMetric.forEach(upMetricType => {
43
38
  upMetricType.set(0);
44
39
  });
45
40
  };
46
-
47
41
  const createMiddleware = ({
48
42
  app,
49
43
  options
@@ -68,16 +62,13 @@ const createMiddleware = ({
68
62
  key: 'recordRequest',
69
63
  value: recordRequest
70
64
  });
71
-
72
65
  if (!shouldSkipMetricsByEnvironment) {
73
66
  observeGc();
74
67
  }
75
-
76
68
  return (request, response, next) => {
77
69
  const requestTiming = metrics.timing.start();
78
70
  response.on('finish', () => {
79
71
  var _allDefaultedOptions$, _allDefaultedOptions$2, _request$headers$cont, _response$getHeader;
80
-
81
72
  const labels = Object.assign({}, {
82
73
  method: allDefaultedOptions.normalizeMethod(request.method, {
83
74
  req: request,
@@ -95,7 +86,6 @@ const createMiddleware = ({
95
86
  const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
96
87
  const requestContentLength = Number((_request$headers$cont = request.headers['content-length']) !== null && _request$headers$cont !== void 0 ? _request$headers$cont : 0);
97
88
  const responseContentLength = Number((_response$getHeader = response.getHeader('content-length')) !== null && _response$getHeader !== void 0 ? _response$getHeader : 0);
98
-
99
89
  if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
100
90
  recordRequest(requestTiming, {
101
91
  labels,
@@ -9,6 +9,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e };
9
9
 
10
10
  var merge__default = /*#__PURE__*/_interopDefault(merge);
11
11
 
12
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
13
+
12
14
  const exposeOnLocals = ({
13
15
  app,
14
16
  key,
@@ -16,34 +18,26 @@ const exposeOnLocals = ({
16
18
  }) => {
17
19
  if (app !== null && app !== void 0 && app.locals) app.locals[key] = value;
18
20
  };
19
-
20
21
  const extractPath = req => req.originalUrl || req.url;
21
-
22
22
  let recordRequest;
23
23
  let upMetric;
24
-
25
24
  const getRequestRecorder = () => recordRequest;
26
-
27
25
  const signalIsUp = () => {
28
26
  if (!upMetric) {
29
27
  return;
30
28
  }
31
-
32
29
  upMetric.forEach(upMetricType => {
33
30
  upMetricType.set(1);
34
31
  });
35
32
  };
36
-
37
33
  const signalIsNotUp = () => {
38
34
  if (!upMetric) {
39
35
  return;
40
36
  }
41
-
42
37
  upMetric.forEach(upMetricType => {
43
38
  upMetricType.set(0);
44
39
  });
45
40
  };
46
-
47
41
  const createMiddleware = ({
48
42
  app,
49
43
  options
@@ -68,16 +62,13 @@ const createMiddleware = ({
68
62
  key: 'recordRequest',
69
63
  value: recordRequest
70
64
  });
71
-
72
65
  if (!shouldSkipMetricsByEnvironment) {
73
66
  observeGc();
74
67
  }
75
-
76
68
  return (request, response, next) => {
77
69
  const requestTiming = metrics.timing.start();
78
70
  response.on('finish', () => {
79
71
  var _allDefaultedOptions$, _allDefaultedOptions$2, _request$headers$cont, _response$getHeader;
80
-
81
72
  const labels = Object.assign({}, {
82
73
  method: allDefaultedOptions.normalizeMethod(request.method, {
83
74
  req: request,
@@ -95,7 +86,6 @@ const createMiddleware = ({
95
86
  const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
96
87
  const requestContentLength = Number((_request$headers$cont = request.headers['content-length']) !== null && _request$headers$cont !== void 0 ? _request$headers$cont : 0);
97
88
  const responseContentLength = Number((_response$getHeader = response.getHeader('content-length')) !== null && _response$getHeader !== void 0 ? _response$getHeader : 0);
98
-
99
89
  if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
100
90
  recordRequest(requestTiming, {
101
91
  labels,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promster/express",
3
- "version": "7.0.5",
3
+ "version": "7.0.6",
4
4
  "description": "Express server integrations of promster",
5
5
  "main": "dist/promster-express.cjs.js",
6
6
  "typings": "dist/promster-express.cjs.d.ts",
@@ -36,14 +36,14 @@
36
36
  "prometheus"
37
37
  ],
38
38
  "dependencies": {
39
- "@promster/metrics": "^9.1.5",
39
+ "@promster/metrics": "^9.1.6",
40
40
  "merge-options": "3.0.4",
41
- "tslib": "2.3.1"
41
+ "tslib": "2.4.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@promster/server": "7.0.7",
45
- "@types/express": "4.17.13",
46
- "express": "4.17.3",
44
+ "@promster/server": "7.0.8",
45
+ "@types/express": "4.17.14",
46
+ "express": "4.18.2",
47
47
  "node-fetch": "2.6.7",
48
48
  "parse-prometheus-text-format": "1.1.1"
49
49
  }