MCPcopy Create free account
hub / github.com/Openpanel-dev/openpanel / createMiddleware

Function createMiddleware

packages/sdks/express/index.ts:22–49  ·  view source on GitHub ↗
(options: OpenpanelOptions)

Source from the content-addressed store, hash-verified

20};
21
22export default function createMiddleware(options: OpenpanelOptions) {
23 return function middleware(req: Request, res: Response, next: NextFunction) {
24 const sdk = new OpenPanel(options);
25 const { ip } = getClientIpFromHeaders(req.headers);
26 if (ip) {
27 sdk.api.addHeader('openpanel-client-ip', ip);
28 }
29 if (req.headers['user-agent']) {
30 sdk.api.addHeader('user-agent', req.headers['user-agent'] as string);
31 }
32
33 if (options.trackRequest?.(req.url)) {
34 const profileId = options.getProfileId
35 ? options.getProfileId(req)
36 : undefined;
37 sdk.track('request', {
38 url: req.url,
39 method: req.method,
40 query: req.query,
41 profileId,
42 });
43 }
44
45 req.op = sdk;
46
47 return next();
48 };
49}

Callers

nothing calls this directly

Calls 3

trackMethod · 0.95
getClientIpFromHeadersFunction · 0.90
addHeaderMethod · 0.45

Tested by

no test coverage detected