本文整理汇总了TypeScript中apollo-utilities.isField函数的典型用法代码示例。如果您正苦于以下问题:TypeScript isField函数的具体用法?TypeScript isField怎么用?TypeScript isField使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了isField函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: InvariantError
selectionSet.selections.forEach(selection => {
if (!shouldInclude(selection, variables)) {
// Skip this entirely
return;
}
if (isField(selection)) {
const fieldResult = handleMissing(
this.executeField(object, typename, selection, execContext),
);
if (typeof fieldResult !== 'undefined') {
objectsToMerge.push({
[resultKeyNameFromField(selection)]: fieldResult,
});
}
} else {
let fragment: InlineFragmentNode | FragmentDefinitionNode;
if (isInlineFragment(selection)) {
fragment = selection;
} else {
// This is a named fragment
fragment = fragmentMap[selection.name.value];
if (!fragment) {
throw new InvariantError(`No fragment named ${selection.name.value}`);
}
}
const typeCondition = fragment.typeCondition.name.value;
const match = execContext.fragmentMatcher(rootValue, typeCondition, contextValue);
if (match) {
let fragmentExecResult = this.executeSelectionSet({
selectionSet: fragment.selectionSet,
rootValue,
execContext,
});
if (match === 'heuristic' && fragmentExecResult.missing) {
fragmentExecResult = {
...fragmentExecResult,
missing: fragmentExecResult.missing.map(info => {
return { ...info, tolerable: true };
}),
};
}
objectsToMerge.push(handleMissing(fragmentExecResult));
}
}
});
示例2: Error
const execute = async selection => {
if (!shouldInclude(selection, variables)) {
// Skip this entirely
return;
}
if (isField(selection)) {
const fieldResult = await executeField(selection, rootValue, execContext);
const resultFieldKey = resultKeyNameFromField(selection);
if (fieldResult !== undefined) {
if (result[resultFieldKey] === undefined) {
result[resultFieldKey] = fieldResult;
} else {
merge(result[resultFieldKey], fieldResult);
}
}
return;
}
let fragment: InlineFragmentNode | FragmentDefinitionNode;
if (isInlineFragment(selection)) {
fragment = selection;
} else {
// This is a named fragment
fragment = fragmentMap[selection.name.value];
if (!fragment) {
throw new Error(`No fragment named ${selection.name.value}`);
}
}
const typeCondition = fragment.typeCondition.name.value;
if (execContext.fragmentMatcher(rootValue, typeCondition, contextValue)) {
const fragmentResult = await executeSelectionSet(
fragment.selectionSet,
rootValue,
execContext,
);
merge(result, fragmentResult);
}
};
示例3: Error
selectionSet.selections.forEach(selection => {
if (variables && !shouldInclude(selection, variables)) {
// Skip selection sets which we're able to determine should not be run
return;
}
if (isField(selection)) {
const fieldResult = executeField(selection, rootValue, execContext);
const resultFieldKey = resultKeyNameFromField(selection);
if (fieldResult !== undefined) {
if (result[resultFieldKey] === undefined) {
result[resultFieldKey] = fieldResult;
} else {
merge(result[resultFieldKey], fieldResult);
}
}
} else {
let fragment: InlineFragmentNode | FragmentDefinitionNode;
if (isInlineFragment(selection)) {
fragment = selection;
} else {
// This is a named fragment
fragment = fragmentMap[selection.name.value];
if (!fragment) {
throw new Error(`No fragment named ${selection.name.value}`);
}
}
const typeCondition = fragment.typeCondition.name.value;
if (execContext.fragmentMatcher(rootValue, typeCondition, contextValue)) {
const fragmentResult = executeSelectionSet(
fragment.selectionSet,
rootValue,
execContext,
);
merge(result, fragmentResult);
}
}
});
示例4: async
const execute = async (selection: SelectionNode): Promise<void> => {
if (!shouldInclude(selection, variables)) {
// Skip this entirely.
return;
}
if (isField(selection)) {
return this.resolveField(selection, rootValue, execContext).then(
fieldResult => {
if (typeof fieldResult !== 'undefined') {
resultsToMerge.push({
[resultKeyNameFromField(selection)]: fieldResult,
} as TData);
}
},
);
}
let fragment: InlineFragmentNode | FragmentDefinitionNode;
if (isInlineFragment(selection)) {
fragment = selection;
} else {
// This is a named fragment.
fragment = fragmentMap[selection.name.value];
invariant(fragment, `No fragment named ${selection.name.value}`);
}
if (fragment && fragment.typeCondition) {
const typeCondition = fragment.typeCondition.name.value;
if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {
return this.resolveSelectionSet(
fragment.selectionSet,
rootValue,
execContext,
).then(fragmentResult => {
resultsToMerge.push(fragmentResult);
});
}
}
};