本文整理汇总了TypeScript中graphql.GraphQLObjectType类的典型用法代码示例。如果您正苦于以下问题:TypeScript GraphQLObjectType类的具体用法?TypeScript GraphQLObjectType怎么用?TypeScript GraphQLObjectType使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了GraphQLObjectType类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: addFakeProperties
function addFakeProperties(objectType:GraphQLObjectType) {
const isMutation = (objectType.name === mutationTypeName);
for (let field of Object.values(objectType.getFields())) {
if (isMutation && isRelayMutation(field))
field.resolve = getRelayMutationResolver();
else
field.resolve = getFieldResolver(field);
}
}
示例2: getTypesAndWhere
export function getTypesAndWhere(queryType: GraphQLObjectType) {
const fields = queryType.getFields()
const listFields = Object.keys(fields).reduce(
(acc, field) => {
const deepType = getDeepListType(fields[field])
if (deepType) {
acc.push({ field: fields[field], deepType })
}
return acc
},
[] as any[],
)
return listFields.map(({ field, deepType }) => ({
type: deepType.name,
pluralFieldName: field.name,
where: getWhere(field),
}))
}
示例3: generateMappingFromObjectType
export function generateMappingFromObjectType(
type: GraphQLObjectType,
operation: Operation,
): {
[fieldName: string]: {
name: string;
operation: Operation;
};
} {
const result = {};
const fields = type.getFields();
Object.keys(fields).forEach(fieldName => {
result[fieldName] = {
name: fieldName,
operation,
};
});
return result;
}
示例4: createDocument
function createDocument(
schema: GraphQLSchema,
fragmentReplacements: {
[typeName: string]: { [fieldName: string]: InlineFragmentNode };
},
type: GraphQLObjectType,
rootFieldName: string,
operation: 'query' | 'mutation',
selections: Array<FieldNode>,
fragments: { [fragmentName: string]: FragmentDefinitionNode },
variableDefinitions?: Array<VariableDefinitionNode>,
): DocumentNode {
const rootField = type.getFields()[rootFieldName];
const newVariables: Array<{ arg: string; variable: string }> = [];
const rootSelectionSet = {
kind: Kind.SELECTION_SET,
// (XXX) This (wrongly) assumes only having one fieldNode
selections: selections.map(selection => {
if (selection.kind === Kind.FIELD) {
const { selection: newSelection, variables } = processRootField(
selection,
rootFieldName,
rootField,
);
newVariables.push(...variables);
return newSelection;
} else {
return selection;
}
}),
};
const newVariableDefinitions = newVariables.map(({ arg, variable }) => {
const argDef = rootField.args.find(rootArg => rootArg.name === arg);
if (!argDef) {
throw new Error('Unexpected missing arg');
}
const typeName = typeToAst(argDef.type);
return {
kind: Kind.VARIABLE_DEFINITION,
variable: {
kind: Kind.VARIABLE,
name: {
kind: Kind.NAME,
value: variable,
},
},
type: typeName,
};
});
const {
selectionSet,
fragments: processedFragments,
usedVariables,
} = filterSelectionSetDeep(
schema,
fragmentReplacements,
type,
rootSelectionSet,
fragments,
);
const operationDefinition: OperationDefinitionNode = {
kind: Kind.OPERATION_DEFINITION,
operation,
variableDefinitions: [
...(variableDefinitions || []).filter(
variableDefinition =>
usedVariables.indexOf(variableDefinition.variable.name.value) !== -1,
),
...newVariableDefinitions,
],
selectionSet,
};
const newDoc: DocumentNode = {
kind: Kind.DOCUMENT,
definitions: [operationDefinition, ...processedFragments],
};
return newDoc;
}
示例5: while
const newOperations = operations.map((operation: OperationDefinitionNode) => {
let existingVariables = operation.variableDefinitions.map(
(variableDefinition: VariableDefinitionNode) =>
variableDefinition.variable.name.value,
);
let variableCounter = 0;
const variables = {};
const generateVariableName = (argName: string) => {
let varName;
do {
varName = `_v${variableCounter}_${argName}`;
variableCounter++;
} while (existingVariables.indexOf(varName) !== -1);
return varName;
};
let type: GraphQLObjectType;
if (operation.operation === 'subscription') {
type = targetSchema.getSubscriptionType();
} else if (operation.operation === 'mutation') {
type = targetSchema.getMutationType();
} else {
type = targetSchema.getQueryType();
}
const newSelectionSet: Array<SelectionNode> = [];
operation.selectionSet.selections.forEach((selection: SelectionNode) => {
if (selection.kind === Kind.FIELD) {
let newArgs: { [name: string]: ArgumentNode } = {};
selection.arguments.forEach((argument: ArgumentNode) => {
newArgs[argument.name.value] = argument;
});
const name: string = selection.name.value;
const field: GraphQLField<any, any> = type.getFields()[name];
field.args.forEach((argument: GraphQLArgument) => {
if (argument.name in args) {
const variableName = generateVariableName(argument.name);
variableNames[argument.name] = variableName;
newArgs[argument.name] = {
kind: Kind.ARGUMENT,
name: {
kind: Kind.NAME,
value: argument.name,
},
value: {
kind: Kind.VARIABLE,
name: {
kind: Kind.NAME,
value: variableName,
},
},
};
existingVariables.push(variableName);
variables[variableName] = {
kind: Kind.VARIABLE_DEFINITION,
variable: {
kind: Kind.VARIABLE,
name: {
kind: Kind.NAME,
value: variableName,
},
},
type: typeToAst(argument.type),
};
}
});
newSelectionSet.push({
...selection,
arguments: Object.keys(newArgs).map(argName => newArgs[argName]),
});
} else {
newSelectionSet.push(selection);
}
});
return {
...operation,
variableDefinitions: operation.variableDefinitions.concat(
Object.keys(variables).map(varName => variables[varName]),
),
selectionSet: {
kind: Kind.SELECTION_SET,
selections: newSelectionSet,
},
};
});
示例6: generateVariableName
operation.selectionSet.selections.forEach((selection: SelectionNode) => {
if (selection.kind === Kind.FIELD) {
let newArgs: { [name: string]: ArgumentNode } = {};
selection.arguments.forEach((argument: ArgumentNode) => {
newArgs[argument.name.value] = argument;
});
const name: string = selection.name.value;
const field: GraphQLField<any, any> = type.getFields()[name];
field.args.forEach((argument: GraphQLArgument) => {
if (argument.name in args) {
const variableName = generateVariableName(argument.name);
variableNames[argument.name] = variableName;
newArgs[argument.name] = {
kind: Kind.ARGUMENT,
name: {
kind: Kind.NAME,
value: argument.name,
},
value: {
kind: Kind.VARIABLE,
name: {
kind: Kind.NAME,
value: variableName,
},
},
};
existingVariables.push(variableName);
variables[variableName] = {
kind: Kind.VARIABLE_DEFINITION,
variable: {
kind: Kind.VARIABLE,
name: {
kind: Kind.NAME,
value: variableName,
},
},
type: typeToAst(argument.type),
};
}
});
newSelectionSet.push({
...selection,
arguments: Object.keys(newArgs).map(argName => newArgs[argName]),
});
} else {
newSelectionSet.push(selection);
}
});