openreplay/tracker/tracker-graphql/src/graphqlMiddleware.ts
PiR a47ff4fcf0
Tracker GrahpQL: update doc and tracker initialization + add option to pass sanitizer function (#2402)
* fix(graphQL): update doc and tracker initialization + add option to pass sanitizer function

* improvement(graphQL): improve sanitizer type & apollo operation name
2024-07-22 16:08:41 +02:00

33 lines
730 B
TypeScript

import { App, Messages } from '@openreplay/tracker';
function createGraphqlMiddleware() {
return (app: App | null) => {
if (app === null) {
return (_1: string, _2: string, _3: any, result: any) => result;
}
return (
operationKind: string,
operationName: string,
variables: any,
result: any,
duration = 0,
) => {
try {
app.send(
Messages.GraphQL(
operationKind,
operationName,
JSON.stringify(variables),
JSON.stringify(result),
duration,
),
);
} catch (e) {
console.error(e);
}
return result;
};
};
}
export default createGraphqlMiddleware;