Initial Save
This commit is contained in:
72
node_modules/apollo-tracing/dist/index.js
generated
vendored
Normal file
72
node_modules/apollo-tracing/dist/index.js
generated
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.plugin = void 0;
|
||||
const graphql_1 = require("graphql");
|
||||
const { name: PACKAGE_NAME } = require("../package.json");
|
||||
exports.plugin = (_futureOptions = {}) => () => ({
|
||||
requestDidStart() {
|
||||
const startWallTime = new Date();
|
||||
let endWallTime;
|
||||
const startHrTime = process.hrtime();
|
||||
let duration;
|
||||
const resolverCalls = [];
|
||||
return {
|
||||
executionDidStart: () => ({
|
||||
executionDidEnd: () => {
|
||||
duration = process.hrtime(startHrTime);
|
||||
endWallTime = new Date();
|
||||
},
|
||||
willResolveField({ info }) {
|
||||
const resolverCall = {
|
||||
path: info.path,
|
||||
fieldName: info.fieldName,
|
||||
parentType: info.parentType,
|
||||
returnType: info.returnType,
|
||||
startOffset: process.hrtime(startHrTime),
|
||||
};
|
||||
resolverCalls.push(resolverCall);
|
||||
return () => {
|
||||
resolverCall.endOffset = process.hrtime(startHrTime);
|
||||
};
|
||||
},
|
||||
}),
|
||||
willSendResponse({ response }) {
|
||||
if (typeof endWallTime === 'undefined' ||
|
||||
typeof duration === 'undefined') {
|
||||
return;
|
||||
}
|
||||
const extensions = response.extensions || (response.extensions = Object.create(null));
|
||||
if (typeof extensions.tracing !== 'undefined') {
|
||||
throw new Error(PACKAGE_NAME + ": Could not add `tracing` to " +
|
||||
"`extensions` since `tracing` was unexpectedly already present.");
|
||||
}
|
||||
extensions.tracing = {
|
||||
version: 1,
|
||||
startTime: startWallTime.toISOString(),
|
||||
endTime: endWallTime.toISOString(),
|
||||
duration: durationHrTimeToNanos(duration),
|
||||
execution: {
|
||||
resolvers: resolverCalls.map(resolverCall => {
|
||||
const startOffset = durationHrTimeToNanos(resolverCall.startOffset);
|
||||
const duration = resolverCall.endOffset
|
||||
? durationHrTimeToNanos(resolverCall.endOffset) - startOffset
|
||||
: 0;
|
||||
return {
|
||||
path: [...graphql_1.responsePathAsArray(resolverCall.path)],
|
||||
parentType: resolverCall.parentType.toString(),
|
||||
fieldName: resolverCall.fieldName,
|
||||
returnType: resolverCall.returnType.toString(),
|
||||
startOffset,
|
||||
duration,
|
||||
};
|
||||
}),
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
},
|
||||
});
|
||||
function durationHrTimeToNanos(hrtime) {
|
||||
return hrtime[0] * 1e9 + hrtime[1];
|
||||
}
|
||||
//# sourceMappingURL=index.js.map
|
||||
Reference in New Issue
Block a user