本文整理汇总了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;
示例2: getChildSelections
const ret: IChildSelection[] = def.selectionSet.selections.map(sel => getChildSelections('query', sel, foundType));