0.1.7 • Published 2 years ago

@tcwd/jsonschema-graphql v0.1.7

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

微搭数据源 graphql 解释器

将微搭数据源 jsonschema 动态转换成 graphql 类型和 resolver

用法

import { graphql } from 'graphql';
const transformer = new SchemaTransformer([...wedaJSONSchemas]);

const schema = transformer.getSchema(); // graphql schema

const result = graphql({
  schema,
  rootValue: {},
  source: 'mutation{ xxxx }',
  contextValue: {},
  variableValues: {}
});

除了使用默认的 resolver 也可以自定义数据获取方法,一种是定义完全的 resolver 方法,另一种是自定义数据获取的 fetcher 方法。这两者都可以自定义部分方法来代替默认的,而两种的区别在于 resolver 会处理数据获取的完整方法,而 fetcher 只是数据获取方法,其他的像出参入参处理等逻辑都可以由默认的 resolver 处理。 如:

const localData = {
  xxx
};

const transformer = new SchemaTransformer([...wedaJSONSchemas], {
  getResolvers(opt) {
    return {
      getItem(value, { _id: _id }, context) {
        return localData[_id];
      }
    };
  },
  fetchers: {
    http: (url, init = {}, jsonschema) => {
      init.headers = { ...init.headers, 'x-seqId': 'xxxxx' };
      return fetch(url, init);
    }
  }
});