mirror of
https://github.com/BreizhHardware/express-prom-bundle.git
synced 2026-01-18 16:27:28 +01:00
Add test for typings
This commit is contained in:
@@ -1,10 +1,11 @@
|
|||||||
import { Request, RequestHandler, Response } from 'express';
|
import * as express from 'express';
|
||||||
|
|
||||||
import * as promClient from 'prom-client';
|
import * as promClient from 'prom-client';
|
||||||
|
|
||||||
import * as promBundle from 'express-prom-bundle';
|
import * as promBundle from 'express-prom-bundle';
|
||||||
|
|
||||||
// $ExpectType Middleware
|
// $ExpectType Middleware
|
||||||
const middleware: RequestHandler = promBundle({ includeMethod: true });
|
const middleware: express.RequestHandler = promBundle({ includeMethod: true });
|
||||||
|
|
||||||
// $ExpectType: string
|
// $ExpectType: string
|
||||||
middleware.name;
|
middleware.name;
|
||||||
@@ -57,7 +58,8 @@ promBundle({
|
|||||||
normalizePath: [
|
normalizePath: [
|
||||||
['^/foo', '/example'] // replace /foo with /example
|
['^/foo', '/example'] // replace /foo with /example
|
||||||
],
|
],
|
||||||
formatStatusCode: (res: Response) => res.statusCode + 100
|
formatStatusCode: (res: express.Response) => res.statusCode + 100,
|
||||||
|
metricsApp: express()
|
||||||
});
|
});
|
||||||
|
|
||||||
promClient.register.clear();
|
promClient.register.clear();
|
||||||
@@ -79,14 +81,14 @@ promBundle({
|
|||||||
type Writable<T> = { -readonly [K in keyof T]: T[K] };
|
type Writable<T> = { -readonly [K in keyof T]: T[K] };
|
||||||
const wPromBundle: Writable<promBundle> = promBundle;
|
const wPromBundle: Writable<promBundle> = promBundle;
|
||||||
|
|
||||||
wPromBundle.normalizePath = (req: Request, opts: promBundle.Opts) => {
|
wPromBundle.normalizePath = (req: express.Request, opts: promBundle.Opts) => {
|
||||||
const path = promBundle.normalizePath(req, opts);
|
const path = promBundle.normalizePath(req, opts);
|
||||||
|
|
||||||
// count all docs as one path, but /docs/login as a separate one
|
// count all docs as one path, but /docs/login as a separate one
|
||||||
return path.match(/^\/docs/) && !path.match(/^\/login/) ? '/docs/*' : path;
|
return path.match(/^\/docs/) && !path.match(/^\/login/) ? '/docs/*' : path;
|
||||||
};
|
};
|
||||||
|
|
||||||
wPromBundle.normalizeStatusCode = (res: Response) => res.statusCode.toString();
|
wPromBundle.normalizeStatusCode = (res: express.Response) => res.statusCode.toString();
|
||||||
|
|
||||||
// $ExpectType RequestHandler
|
// $ExpectType RequestHandler
|
||||||
promBundle.clusterMetrics();
|
promBundle.clusterMetrics();
|
||||||
|
|||||||
Reference in New Issue
Block a user