Logging Queries
In a development environment, you may want to log GraphQL queries that are being executed in your application. Faust.js provides a function, logQueries
, to do this.
logQueries
is called within your client/index.ts
file. Take the following client/index.ts
example:
client/index.ts
/**
* GQTY: You can safely modify this file and Query Fetcher based on your needs
*/
import type { IncomingMessage } from 'http';
import {
getClient,
logQueries,
} from '@faustjs/next';
import {
generatedSchema,
scalarsEnumsHash,
GeneratedSchema,
SchemaObjectTypes,
SchemaObjectTypesNames,
} from './schema.generated';
export const client = getClient<
GeneratedSchema,
SchemaObjectTypesNames,
SchemaObjectTypes
>({
schema: generatedSchema,
scalarsEnumsHash,
});
if (process.env.NODE_ENV === 'development') {
logQueries(client);
}
export function serverClient(req: IncomingMessage) {
return getClient<GeneratedSchema, SchemaObjectTypesNames, SchemaObjectTypes>({
schema: generatedSchema,
scalarsEnumsHash,
context: req,
});
}
export * from './schema.generated';
Note the conditional check for the node environment. It is recommended that you only log queries in a dev environment, and not in production.
Additionally, the logQueries
function returns a function than can be called to turn off the logger:
if (process.env.NODE_ENV === 'development') {
const unsubscribe = logQueries(client);
// queries are now logging
// ...
unsubscribe();
// queries no longer log
// ...
}