Skip to content

Commit

Permalink
Small improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
ardatan committed Oct 31, 2024
1 parent 18fe916 commit 6129fe6
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 18 deletions.
2 changes: 1 addition & 1 deletion packages/graphql-yoga/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ export class YogaServer<
private maskedErrorsOpts: YogaMaskedErrorOpts | null;
private id: string;

version = '__YOGA_VERSION__';
readonly version = '__YOGA_VERSION__';

constructor(options?: YogaServerOptions<TServerContext, TUserContext>) {
this.id = options?.id ?? 'yoga';
Expand Down
36 changes: 19 additions & 17 deletions packages/plugins/apollo-usage-report/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {
Plugin,
YogaInitialContext,
YogaLogger,
YogaServer,
type FetchAPI,
} from 'graphql-yoga';
import { Report } from '@apollo/usage-reporting-protobuf';
Expand Down Expand Up @@ -78,12 +79,14 @@ export function useApolloUsageReport(options: ApolloUsageReportOptions = {}): Pl
WeakMap<Request, ApolloUsageReportRequestContext>,
];

let logger: YogaLogger;
let fetchAPI: FetchAPI;
let schemaId: string;

let yogaVersion: string;
let agentVersion = '0.0.0';
let yoga: YogaServer<Record<string, unknown>, Record<string, unknown>>;
const logger = Object.fromEntries(
(['error', 'warn', 'info', 'debug'] as const).map(level => [
level,
(...messages: unknown[]) => yoga.logger[level]('[ApolloUsageReport]', ...messages),
]),
) as YogaLogger;

let clientNameFactory: StringFromRequestFn = req =>
req.headers.get('apollographql-client-name') || 'graphql-yoga';
Expand All @@ -96,7 +99,7 @@ export function useApolloUsageReport(options: ApolloUsageReportOptions = {}): Pl
}

let clientVersionFactory: StringFromRequestFn = req =>
req.headers.get('apollographql-client-version') || yogaVersion;
req.headers.get('apollographql-client-version') || yoga.version;

if (typeof options.clientVersion === 'string') {
const clientVersion = options.clientVersion;
Expand All @@ -110,16 +113,7 @@ export function useApolloUsageReport(options: ApolloUsageReportOptions = {}): Pl
addPlugin(instrumentation);
addPlugin({
onYogaInit(args) {
yogaVersion = args.yoga.version;
agentVersion = options.agentVersion || `graphql-yoga@${yogaVersion}`;
fetchAPI = args.yoga.fetchAPI;
logger = Object.fromEntries(
(['error', 'warn', 'info', 'debug'] as const).map(level => [
level,
(...messages: unknown[]) =>
args.yoga.logger[level]('[ApolloUsageReport]', ...messages),
]),
) as YogaLogger;
yoga = args.yoga;

if (!getEnvVar('APOLLO_KEY', options.apiKey)) {
throw new Error(
Expand Down Expand Up @@ -197,8 +191,16 @@ export function useApolloUsageReport(options: ApolloUsageReportOptions = {}): Pl

for (const schemaId in tracesPerSchema) {
const tracesPerQuery = tracesPerSchema[schemaId];
const agentVersion = options.agentVersion || `graphql-yoga@${yoga.version}`;
serverContext.waitUntil(
sendTrace(options, logger, fetchAPI.fetch, schemaId, tracesPerQuery, agentVersion),
sendTrace(
options,
logger,
yoga.fetchAPI.fetch,
schemaId,
tracesPerQuery,
agentVersion,
),
);
}
},
Expand Down

0 comments on commit 6129fe6

Please sign in to comment.