本文整理汇总了TypeScript中graphql-relay.connectionDefinitions函数的典型用法代码示例。如果您正苦于以下问题:TypeScript connectionDefinitions函数的具体用法?TypeScript connectionDefinitions怎么用?TypeScript connectionDefinitions使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了connectionDefinitions函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: catch
isTypeOf: (obj): boolean => {
try { new db.Message(obj).validate(); return true } catch (e) { return false }
},
fields: (): GQL.GraphQLFieldConfigMap => ({
id: R.globalIdField('Message'),
userId: { type: new GQL.GraphQLNonNull(GQL.GraphQLString) },
createdAt: { type: GQL.GraphQLString },
body: { type: GQL.GraphQLString },
user: {
type: UserType,
resolve: async (msg, args): Promise<any> => await db.User.get(msg.userId).run()
}
}),
interfaces: [nodeDefinitions.nodeInterface]
})
const messageConnection = R.connectionDefinitions({nodeType: MessageType})
//============================== USER ================================//
const UserType = new GQL.GraphQLObjectType({
name: 'User',
isTypeOf: (obj): boolean => {
try { new db.User(obj).validate(); return true } catch (e) { return false }
},
fields: (): GQL.GraphQLFieldConfigMap => ({
id: R.globalIdField(),
name: { type: new GQL.GraphQLNonNull(GQL.GraphQLString) },
email: { type: new GQL.GraphQLNonNull(GQL.GraphQLString) },
createdAt: { type: GQL.GraphQLString },
updatedAt: { type: GQL.GraphQLString },
messages: {
type: messageConnection.connectionType,
示例2: if
idFetcher,
(obj) => {
if (obj instanceof Store) {
return storeType;
} else if (obj.cross) {
return seedType;
} else if (obj.email) {
return userType;
}
return null;
}
);
userType = new GraphQLObjectType(new UserTypeConfig().getConfig());
export let userConnection: GraphQLConnectionDefinitions = connectionDefinitions({
name: 'user',
nodeType: userType
});
seedType = new GraphQLObjectType(new SeedTypeConfig().getConfig());
export let seedConnection: GraphQLConnectionDefinitions = connectionDefinitions({
name: 'seed',
nodeType: seedType
});
storeType = new GraphQLObjectType(new StoreTypeConfig().getConfig());
示例3: userByIDLoader
{ userId },
_args,
_context,
{ rootValue: { userByIDLoader } }
) => (userId ? userByIDLoader(userId) : null),
},
creditCard: {
type: CreditCard.type,
description: "Credit card on this order",
resolve: (
{ creditCardId },
_args,
_context,
{ rootValue: { creditCardLoader } }
) => (creditCardId ? creditCardLoader(creditCardId) : null),
},
// TODO: The `date` resolver not typed correctly
updatedAt: date as any,
createdAt: date as any,
stateUpdatedAt: date as any,
stateExpiresAt: date as any,
}),
})
export const {
connectionType: OrderConnection,
edgeType: OrderEdge,
} = connectionDefinitions({
nodeType: OrderType,
})
示例4: connectionDefinitions
// backwardConnectionArgs returns the arguments that fields should provide when they return a connection type that only supports backward pagination.
backwardConnectionArgs.before = "b";
backwardConnectionArgs.last = 10;
// connectionDefinitions returns a connectionType and its associated edgeType, given a node type.
const resolve: GraphQLFieldResolver<any, any> = (source, args, context, info) => {
info.fieldName = "f";
};
const fields: GraphQLFieldConfigMap<any, any> = {};
let t: GraphQLObjectType;
let e: GraphQLObjectType;
const def = connectionDefinitions({
connectionFields: fields,
edgeFields: fields,
name: "N",
nodeType: new GraphQLObjectType({
name: "N",
fields: {},
}),
resolveCursor: resolve,
resolveNode: resolve,
});
t = def.connectionType;
e = def.edgeType;
// connectionFromArray is a helper method that takes an array and the arguments from connectionArgs,
// does pagination and filtering, and returns an object in the shape expected by a connectionType's resolve function.
const conn = connectionFromArray([1, 2, 3], {
after: "a",
before: "b",
first: 1,
last: 5,
});