• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

TypeScript types.GetChildSelectionsType类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了TypeScript中@gql2ts/types.GetChildSelectionsType的典型用法代码示例。如果您正苦于以下问题:TypeScript GetChildSelectionsType类的具体用法?TypeScript GetChildSelectionsType怎么用?TypeScript GetChildSelectionsType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了GetChildSelectionsType类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。

示例1: GenerateSubtypeCache


//.........这里部分代码省略.........
        throw new Error('Unsupported Operation');
    }
  };

  const wrapPossiblePartial: (possiblePartial: IChildSelection) => string = possiblePartial => {
    if (possiblePartial.isPartial) {
      return wrapPartial(possiblePartial.iface);
    } else {
      return possiblePartial.iface;
    }
  };

  const flattenComplexTypes: (children: IChildSelection[]) => IComplexTypeSignature[] = children => (
    children.reduce((acc, child) => { acc.push(...child.complexTypes); return acc; }, [] as IComplexTypeSignature[])
  );

  type GetField = (operation: OperationTypeNode, selection: FieldNode, parent?: GraphQLType) => GraphQLField<any, any>;
  const getField: GetField = (operation, selection, parent) => {
    if (parent && isCompositeType(parent)) {
      if (parent instanceof GraphQLUnionType) {
        return parent.getTypes().map(t => t.getFields()[selection.name.value]).find(z => !!z)!;
      } else {
        return parent.getFields()[selection.name.value];
      }
    } else {
      const operationFields: GraphQLObjectType | null | undefined = getOperationFields(operation);
      // operation is taken from the schema, so it should never be falsy
      return operationFields!.getFields()[selection.name.value];
    }
  };

  const rootIntrospectionTypes: Map<string, string> = new Map([[ '__schema', '__Schema' ], [ '__type', '__Type' ]]);

  const getChildSelections: GetChildSelectionsType = (operation, selection, parent?, isUndefined = false): IChildSelection => {
    let str: string = '';
    let isFragment: boolean = false;
    let isPartial: boolean = false;
    let complexTypes: IComplexTypeSignature[] = [];
    if (selection.kind === 'Field') {
      const field: GraphQLField<any, any> = getField(operation, selection, parent);
      const originalName: string = selection.name.value;
      const selectionName: string = selection.alias ? selection.alias.value : originalName;
      let childType: string | undefined;

      isUndefined = isUndefined || isUndefinedFromDirective(selection.directives);
      let resolvedType: string;
      if (originalName === '__typename') {
        if (!parent) {
          resolvedType = TypeMap.String;
        } else if (isAbstractType(parent)) {
          const possibleTypes: GraphQLObjectType[] = parsedSchema.getPossibleTypes(parent);
          /**
           * @TODO break this OR logic out of here (and the other places) and put into a printer
           * @TODO break out the string-literal type out of here as it probably isn't supported by other languages
           */
          resolvedType = possibleTypes.map(({ name }) => `'${name}'`).join(' | ');
        } else {
          resolvedType = `'${parent.toString()}'`;
        }
      } else if (!!selection.selectionSet) {
        let newParent: GraphQLCompositeType | undefined;
        const fieldType: GraphQLNamedType = rootIntrospectionTypes.has(originalName) ? parsedSchema.getType(
          rootIntrospectionTypes.get(originalName)!
        ) : getNamedType(field.type);
        if (isCompositeType(fieldType)) {
          newParent = fieldType;
开发者ID:avantcredit,项目名称:gql2ts,代码行数:67,代码来源:index.ts


示例2: getChildSelections

 const ret: IChildSelection[] = def.selectionSet.selections.map(sel => getChildSelections('query', sel, foundType));
开发者ID:avantcredit,项目名称:gql2ts,代码行数:1,代码来源:index.ts



注:本文中的@gql2ts/types.GetChildSelectionsType类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
TypeScript util.filterAndJoinArray函数代码示例发布时间:2022-05-28
下一篇:
TypeScript storage.Storage类代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap