Sha256: 6bd4d7ff9c12d4c5ada1f9fad1d27044107ca9d1308e8b0159b292ed4b882ef6

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

import graphql, { filter } from "graphql-anywhere";

/**
 * A simple resolver which returns object properties to easily
 * traverse a graphql response
 * @param {String} fieldName - An object property
 * @param {Object} root - An object
 * @returns {any} - An object's property value
 */
const resolver = (fieldName: string, root: any) => root[fieldName];

/**
 * A helper function to mock a graphql api request and return its
 * result. The result can be filtered by the same query so it just
 * returns a data subset.
 * @param {String} document - A graphql query document
 * @param {options} options - An object with optional options
 * @returns {Object} - The result of the query filtered or not
 */
const resolveGraphQLQuery = (document: any, options: any = {}) => {
  const { filterResult, rootValue, context, variables } = options;

  let result = graphql(
    resolver,
    document,
    rootValue,
    context,
    variables,
  );

  if (filterResult) {
    return filter(document, result);
  }
  return result;
};

export default resolveGraphQLQuery;

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
decidim-comments-0.0.8.1 app/frontend/support/resolve_graphql_query.ts
decidim-0.0.8.1 decidim-comments/app/frontend/support/resolve_graphql_query.ts
decidim-comments-0.0.7 app/frontend/support/resolve_graphql_query.ts
decidim-0.0.7 decidim-comments/app/frontend/support/resolve_graphql_query.ts