graphql-mocks
Version:
Tools for setting up graphql test resolvers
82 lines (69 loc) • 2.54 kB
JavaScript
Object.defineProperty(exports, '__esModule', {
value: true
});
require('graphql');
var constants = require('../resolver/constants.js');
var createWrapper = require('../resolver/create-wrapper.js');
var isFieldResolver = require('../resolver/utils/is-field-resolver.js');
var isTypeResolver = require('../resolver/utils/is-type-resolver.js');
const logWrapper = createWrapper.createWrapper('log-wrapper', constants.WrapperFor.ANY, async function (originalResolver, options) {
const {
type,
field
} = options;
if (isFieldResolver.isFieldResolver(options.type, originalResolver)) {
const resolver = async function (parent, args, context, info) {
const [parentOut, argsOut] = [parent, args].map(out => {
try {
return JSON.stringify(out, null, 2);
} catch {
return 'Unable to JSON.stringify';
}
});
console.log(`--- START: field resolver on ${type.name}.${field === null || field === void 0 ? void 0 : field.name} ---`);
console.log('');
console.log(`parent:`);
console.log(parentOut);
console.log('');
console.log('args:');
console.log(argsOut);
console.log('');
const result = await originalResolver(parent, args, context, info);
const resultOut = JSON.stringify(result, null, 2);
console.log('result:');
console.log(resultOut);
console.log('');
console.log(`--- END: field resolver on ${type.name}.${field === null || field === void 0 ? void 0 : field.name} ---`);
return result;
};
return resolver;
}
if (isTypeResolver.isTypeResolver(options.type, originalResolver)) {
const resolver = async (value, context, info, abstractType) => {
const [valueOut] = [value].map(out => {
try {
return JSON.stringify(out, null, 2);
} catch {
return 'Unable to JSON.stringify';
}
});
console.log(`--- START: type resolver on ${type.name} ---`);
console.log('');
console.log('value:');
console.log(valueOut);
console.log('');
const result = await originalResolver(value, context, info, abstractType);
const resultOut = JSON.stringify(result, null, 2);
console.log('result:');
console.log(resultOut);
console.log('');
console.log(`--- END: type resolver on ${type.name} ---`);
return result;
};
return resolver;
}
return originalResolver;
});
exports.logWrapper = logWrapper;
//# sourceMappingURL=log.js.map
;