schemaDirectives.js 7.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.load = exports.definitions = void 0;
  6. var _utils = require("@graphql-tools/utils");
  7. var _FunctionsRouter = require("../../Routers/FunctionsRouter");
  8. const definitions = exports.definitions = `
  9. directive @resolve(to: String) on FIELD_DEFINITION
  10. directive @mock(with: Any!) on FIELD_DEFINITION
  11. `;
  12. const load = parseGraphQLSchema => {
  13. parseGraphQLSchema.graphQLSchemaDirectivesDefinitions = definitions;
  14. const resolveDirective = schema => (0, _utils.mapSchema)(schema, {
  15. [_utils.MapperKind.OBJECT_FIELD]: fieldConfig => {
  16. var _getDirective;
  17. const directive = (_getDirective = (0, _utils.getDirective)(schema, fieldConfig, 'resolve')) === null || _getDirective === void 0 ? void 0 : _getDirective[0];
  18. if (directive) {
  19. const {
  20. to: targetCloudFunction
  21. } = directive;
  22. fieldConfig.resolve = async (_source, args, context, gqlInfo) => {
  23. try {
  24. const {
  25. config,
  26. auth,
  27. info
  28. } = context;
  29. const functionName = targetCloudFunction || gqlInfo.fieldName;
  30. return (await _FunctionsRouter.FunctionsRouter.handleCloudFunction({
  31. params: {
  32. functionName
  33. },
  34. config,
  35. auth,
  36. info,
  37. body: args
  38. })).response.result;
  39. } catch (e) {
  40. parseGraphQLSchema.handleError(e);
  41. }
  42. };
  43. }
  44. return fieldConfig;
  45. }
  46. });
  47. const mockDirective = schema => (0, _utils.mapSchema)(schema, {
  48. [_utils.MapperKind.OBJECT_FIELD]: fieldConfig => {
  49. var _getDirective2;
  50. const directive = (_getDirective2 = (0, _utils.getDirective)(schema, fieldConfig, 'mock')) === null || _getDirective2 === void 0 ? void 0 : _getDirective2[0];
  51. if (directive) {
  52. const {
  53. with: mockValue
  54. } = directive;
  55. fieldConfig.resolve = async () => mockValue;
  56. }
  57. return fieldConfig;
  58. }
  59. });
  60. parseGraphQLSchema.graphQLSchemaDirectives = schema => mockDirective(resolveDirective(schema));
  61. };
  62. exports.load = load;
  63. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXRpbHMiLCJyZXF1aXJlIiwiX0Z1bmN0aW9uc1JvdXRlciIsImRlZmluaXRpb25zIiwiZXhwb3J0cyIsImxvYWQiLCJwYXJzZUdyYXBoUUxTY2hlbWEiLCJncmFwaFFMU2NoZW1hRGlyZWN0aXZlc0RlZmluaXRpb25zIiwicmVzb2x2ZURpcmVjdGl2ZSIsInNjaGVtYSIsIm1hcFNjaGVtYSIsIk1hcHBlcktpbmQiLCJPQkpFQ1RfRklFTEQiLCJmaWVsZENvbmZpZyIsIl9nZXREaXJlY3RpdmUiLCJkaXJlY3RpdmUiLCJnZXREaXJlY3RpdmUiLCJ0byIsInRhcmdldENsb3VkRnVuY3Rpb24iLCJyZXNvbHZlIiwiX3NvdXJjZSIsImFyZ3MiLCJjb250ZXh0IiwiZ3FsSW5mbyIsImNvbmZpZyIsImF1dGgiLCJpbmZvIiwiZnVuY3Rpb25OYW1lIiwiZmllbGROYW1lIiwiRnVuY3Rpb25zUm91dGVyIiwiaGFuZGxlQ2xvdWRGdW5jdGlvbiIsInBhcmFtcyIsImJvZHkiLCJyZXNwb25zZSIsInJlc3VsdCIsImUiLCJoYW5kbGVFcnJvciIsIm1vY2tEaXJlY3RpdmUiLCJfZ2V0RGlyZWN0aXZlMiIsIndpdGgiLCJtb2NrVmFsdWUiLCJncmFwaFFMU2NoZW1hRGlyZWN0aXZlcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9HcmFwaFFML2xvYWRlcnMvc2NoZW1hRGlyZWN0aXZlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXBTY2hlbWEsIGdldERpcmVjdGl2ZSwgTWFwcGVyS2luZCB9IGZyb20gJ0BncmFwaHFsLXRvb2xzL3V0aWxzJztcbmltcG9ydCB7IEZ1bmN0aW9uc1JvdXRlciB9IGZyb20gJy4uLy4uL1JvdXRlcnMvRnVuY3Rpb25zUm91dGVyJztcblxuZXhwb3J0IGNvbnN0IGRlZmluaXRpb25zID0gYFxuICBkaXJlY3RpdmUgQHJlc29sdmUodG86IFN0cmluZykgb24gRklFTERfREVGSU5JVElPTlxuICBkaXJlY3RpdmUgQG1vY2sod2l0aDogQW55ISkgb24gRklFTERfREVGSU5JVElPTlxuYDtcblxuY29uc3QgbG9hZCA9IHBhcnNlR3JhcGhRTFNjaGVtYSA9PiB7XG4gIHBhcnNlR3JhcGhRTFNjaGVtYS5ncmFwaFFMU2NoZW1hRGlyZWN0aXZlc0RlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG5cbiAgY29uc3QgcmVzb2x2ZURpcmVjdGl2ZSA9IHNjaGVtYSA9PlxuICAgIG1hcFNjaGVtYShzY2hlbWEsIHtcbiAgICAgIFtNYXBwZXJLaW5kLk9CSkVDVF9GSUVMRF06IGZpZWxkQ29uZmlnID0+IHtcbiAgICAgICAgY29uc3QgZGlyZWN0aXZlID0gZ2V0RGlyZWN0aXZlKHNjaGVtYSwgZmllbGRDb25maWcsICdyZXNvbHZlJyk/LlswXTtcbiAgICAgICAgaWYgKGRpcmVjdGl2ZSkge1xuICAgICAgICAgIGNvbnN0IHsgdG86IHRhcmdldENsb3VkRnVuY3Rpb24gfSA9IGRpcmVjdGl2ZTtcbiAgICAgICAgICBmaWVsZENvbmZpZy5yZXNvbHZlID0gYXN5bmMgKF9zb3VyY2UsIGFyZ3MsIGNvbnRleHQsIGdxbEluZm8pID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgY29uZmlnLCBhdXRoLCBpbmZvIH0gPSBjb250ZXh0O1xuICAgICAgICAgICAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSB0YXJnZXRDbG91ZEZ1bmN0aW9uIHx8IGdxbEluZm8uZmllbGROYW1lO1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIGF3YWl0IEZ1bmN0aW9uc1JvdXRlci5oYW5kbGVDbG91ZEZ1bmN0aW9uKHtcbiAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgICAgYXV0aCxcbiAgICAgICAgICAgICAgICAgIGluZm8sXG4gICAgICAgICAgICAgICAgICBib2R5OiBhcmdzLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICkucmVzcG9uc2UucmVzdWx0O1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBwYXJzZUdyYXBoUUxTY2hlbWEuaGFuZGxlRXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmllbGRDb25maWc7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gIGNvbnN0IG1vY2tEaXJlY3RpdmUgPSBzY2hlbWEgPT5cbiAgICBtYXBTY2hlbWEoc2NoZW1hLCB7XG4gICAgICBbTWFwcGVyS2luZC5PQkpFQ1RfRklFTERdOiBmaWVsZENvbmZpZyA9PiB7XG4gICAgICAgIGNvbnN0IGRpcmVjdGl2ZSA9IGdldERpcmVjdGl2ZShzY2hlbWEsIGZpZWxkQ29uZmlnLCAnbW9jaycpPy5bMF07XG4gICAgICAgIGlmIChkaXJlY3RpdmUpIHtcbiAgICAgICAgICBjb25zdCB7IHdpdGg6IG1vY2tWYWx1ZSB9ID0gZGlyZWN0aXZlO1xuICAgICAgICAgIGZpZWxkQ29uZmlnLnJlc29sdmUgPSBhc3luYyAoKSA9PiBtb2NrVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpZWxkQ29uZmlnO1xuICAgICAgfSxcbiAgICB9KTtcblxuICBwYXJzZUdyYXBoUUxTY2hlbWEuZ3JhcGhRTFNjaGVtYURpcmVjdGl2ZXMgPSBzY2hlbWEgPT4gbW9ja0RpcmVjdGl2ZShyZXNvbHZlRGlyZWN0aXZlKHNjaGVtYSkpO1xufTtcbmV4cG9ydCB7IGxvYWQgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUVPLE1BQU1FLFdBQVcsR0FBQUMsT0FBQSxDQUFBRCxXQUFBLEdBQUc7QUFDM0I7QUFDQTtBQUNBLENBQUM7QUFFRCxNQUFNRSxJQUFJLEdBQUdDLGtCQUFrQixJQUFJO0VBQ2pDQSxrQkFBa0IsQ0FBQ0Msa0NBQWtDLEdBQUdKLFdBQVc7RUFFbkUsTUFBTUssZ0JBQWdCLEdBQUdDLE1BQU0sSUFDN0IsSUFBQUMsZ0JBQVMsRUFBQ0QsTUFBTSxFQUFFO0lBQ2hCLENBQUNFLGlCQUFVLENBQUNDLFlBQVksR0FBR0MsV0FBVyxJQUFJO01BQUEsSUFBQUMsYUFBQTtNQUN4QyxNQUFNQyxTQUFTLElBQUFELGFBQUEsR0FBRyxJQUFBRSxtQkFBWSxFQUFDUCxNQUFNLEVBQUVJLFdBQVcsRUFBRSxTQUFTLENBQUMsY0FBQUMsYUFBQSx1QkFBNUNBLGFBQUEsQ0FBK0MsQ0FBQyxDQUFDO01BQ25FLElBQUlDLFNBQVMsRUFBRTtRQUNiLE1BQU07VUFBRUUsRUFBRSxFQUFFQztRQUFvQixDQUFDLEdBQUdILFNBQVM7UUFDN0NGLFdBQVcsQ0FBQ00sT0FBTyxHQUFHLE9BQU9DLE9BQU8sRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLE9BQU8sS0FBSztVQUMvRCxJQUFJO1lBQ0YsTUFBTTtjQUFFQyxNQUFNO2NBQUVDLElBQUk7Y0FBRUM7WUFBSyxDQUFDLEdBQUdKLE9BQU87WUFDdEMsTUFBTUssWUFBWSxHQUFHVCxtQkFBbUIsSUFBSUssT0FBTyxDQUFDSyxTQUFTO1lBQzdELE9BQU8sQ0FDTCxNQUFNQyxnQ0FBZSxDQUFDQyxtQkFBbUIsQ0FBQztjQUN4Q0MsTUFBTSxFQUFFO2dCQUNOSjtjQUNGLENBQUM7Y0FDREgsTUFBTTtjQUNOQyxJQUFJO2NBQ0pDLElBQUk7Y0FDSk0sSUFBSSxFQUFFWDtZQUNSLENBQUMsQ0FBQyxFQUNGWSxRQUFRLENBQUNDLE1BQU07VUFDbkIsQ0FBQyxDQUFDLE9BQU9DLENBQUMsRUFBRTtZQUNWN0Isa0JBQWtCLENBQUM4QixXQUFXLENBQUNELENBQUMsQ0FBQztVQUNuQztRQUNGLENBQUM7TUFDSDtNQUNBLE9BQU90QixXQUFXO0lBQ3BCO0VBQ0YsQ0FBQyxDQUFDO0VBRUosTUFBTXdCLGFBQWEsR0FBRzVCLE1BQU0sSUFDMUIsSUFBQUMsZ0JBQVMsRUFBQ0QsTUFBTSxFQUFFO0lBQ2hCLENBQUNFLGlCQUFVLENBQUNDLFlBQVksR0FBR0MsV0FBVyxJQUFJO01BQUEsSUFBQXlCLGNBQUE7TUFDeEMsTUFBTXZCLFNBQVMsSUFBQXVCLGNBQUEsR0FBRyxJQUFBdEIsbUJBQVksRUFBQ1AsTUFBTSxFQUFFSSxXQUFXLEVBQUUsTUFBTSxDQUFDLGNBQUF5QixjQUFBLHVCQUF6Q0EsY0FBQSxDQUE0QyxDQUFDLENBQUM7TUFDaEUsSUFBSXZCLFNBQVMsRUFBRTtRQUNiLE1BQU07VUFBRXdCLElBQUksRUFBRUM7UUFBVSxDQUFDLEdBQUd6QixTQUFTO1FBQ3JDRixXQUFXLENBQUNNLE9BQU8sR0FBRyxZQUFZcUIsU0FBUztNQUM3QztNQUNBLE9BQU8zQixXQUFXO0lBQ3BCO0VBQ0YsQ0FBQyxDQUFDO0VBRUpQLGtCQUFrQixDQUFDbUMsdUJBQXVCLEdBQUdoQyxNQUFNLElBQUk0QixhQUFhLENBQUM3QixnQkFBZ0IsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQUFDTCxPQUFBLENBQUFDLElBQUEsR0FBQUEsSUFBQSIsImlnbm9yZUxpc3QiOltdfQ==