Repository URL to install this package:
|
Version:
7.1.3 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @todo this causes multiple graphql errors?
*/
const graphql_1 = require("graphql");
const pino_1 = require("./pino");
var LogAction;
(function (LogAction) {
LogAction[LogAction["request"] = 0] = "request";
LogAction[LogAction["parse"] = 1] = "parse";
LogAction[LogAction["validation"] = 2] = "validation";
LogAction[LogAction["execute"] = 3] = "execute";
LogAction[LogAction["setup"] = 4] = "setup";
LogAction[LogAction["cleanup"] = 5] = "cleanup";
})(LogAction = exports.LogAction || (exports.LogAction = {}));
var LogStep;
(function (LogStep) {
LogStep[LogStep["start"] = 0] = "start";
LogStep[LogStep["end"] = 1] = "end";
LogStep[LogStep["status"] = 2] = "status";
})(LogStep = exports.LogStep || (exports.LogStep = {}));
// A GraphQLExtension that implements the existing logFunction interface. Note
// that now that custom extensions are supported, you may just want to do your
// logging as a GraphQLExtension rather than write a LogFunction.
// could also use like .child
exports.DEFAULT_GRAPHQL_LOGGER = (...args) => pino_1.logger.info('[graphql]', ...args);
class LoggingExtension {
constructor(logFunction = exports.DEFAULT_GRAPHQL_LOGGER) {
this.logFunction = logFunction;
}
requestDidStart(options) {
this.logFunction({ action: LogAction.request, step: LogStep.start });
const loggedQuery = options.queryString || graphql_1.print(options.parsedQuery);
this.logFunction({
action: LogAction.request,
step: LogStep.status,
key: 'query',
data: loggedQuery,
});
this.logFunction({
action: LogAction.request,
step: LogStep.status,
key: 'variables',
data: options.variables,
});
this.logFunction({
action: LogAction.request,
step: LogStep.status,
key: 'operationName',
data: options.operationName,
});
return (...errors) => {
// If there are no errors, we log in willSendResponse instead.
if (errors.length) {
this.logFunction({ action: LogAction.request, step: LogStep.end });
}
};
}
parsingDidStart() {
this.logFunction({ action: LogAction.parse, step: LogStep.start });
return () => {
this.logFunction({ action: LogAction.parse, step: LogStep.end });
};
}
validationDidStart() {
this.logFunction({ action: LogAction.validation, step: LogStep.start });
return () => {
this.logFunction({ action: LogAction.validation, step: LogStep.end });
};
}
executionDidStart() {
this.logFunction({ action: LogAction.execute, step: LogStep.start });
return () => {
this.logFunction({ action: LogAction.execute, step: LogStep.end });
};
}
willSendResponse(o) {
this.logFunction({
action: LogAction.request,
step: LogStep.end,
key: 'response',
data: o.graphqlResponse,
});
}
}
exports.LoggingExtension = LoggingExtension;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2luZ0V4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZXBzL0xvZ2dpbmdFeHRlbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQTs7R0FFRztBQUNILHFDQUE2QztBQUM3QyxpQ0FBK0I7QUFFL0IsSUFBWSxTQU9YO0FBUEQsV0FBWSxTQUFTO0lBQ25CLCtDQUFPLENBQUE7SUFDUCwyQ0FBSyxDQUFBO0lBQ0wscURBQVUsQ0FBQTtJQUNWLCtDQUFPLENBQUE7SUFDUCwyQ0FBSyxDQUFBO0lBQ0wsK0NBQU8sQ0FBQTtBQUNULENBQUMsRUFQVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU9wQjtBQUVELElBQVksT0FJWDtBQUpELFdBQVksT0FBTztJQUNqQix1Q0FBSyxDQUFBO0lBQ0wsbUNBQUcsQ0FBQTtJQUNILHlDQUFNLENBQUE7QUFDUixDQUFDLEVBSlcsT0FBTyxHQUFQLGVBQU8sS0FBUCxlQUFPLFFBSWxCO0FBYUQsOEVBQThFO0FBQzlFLDhFQUE4RTtBQUM5RSxpRUFBaUU7QUFFakUsNkJBQTZCO0FBQ2hCLFFBQUEsc0JBQXNCLEdBQUcsQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQ3ZELGFBQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUE7QUFFbkMsTUFBYSxnQkFBZ0I7SUFHM0IsWUFBbUIsY0FBMkIsOEJBQXNCO1FBQ2xFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO0lBQ2hDLENBQUM7SUFFTSxlQUFlLENBQUMsT0FNdEI7UUFDQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQ3BFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksZUFBSyxDQUFDLE9BQU8sQ0FBQyxXQUFX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