graphql-resolvers-middleware
TypeScript icon, indicating that this package has built-in type declarations

1.0.5 • Public • Published

GraphQL Resolvers Middleware

In GraphQL Resolvers Functions Arguments are parent, args, context, info. When use this package, it is provide next, returns functions.

next()

This function provide to pass other to function in order. Also next functions provide to send other function in order some values like next(1, 2). You can reach parameters from other order functions like const UserList = async (one , two, parent, args, context, info, next, returns) => {}.

returns()

This function returns your graphql api response to front-end.

Example

File userListType.ts

export const userListType = gql`
type Query {
  userList: userListPayload
}

type userListPayload {
  result: String
}
`

File resolvers.ts

import { graphqlResolversMiddleware } from "graphql-resolvers-middleware"

import { JwtCheck } from "./JwtCheck"
import { UserList } from "./UserList"


export const resolvers = {
  Query: {
    userList: graphqlResolversMiddleware(JwtCheck, /*add some functions*/ UserList),
    //...
    others: graphqlResolversMiddleware(JwtCheck, Validation, /*add some functions*/ OtherFunction),
  }
}

File JwtCheck.ts

export const JwtCheck = async (parent, args, context, info, next, returns) => {
  try {
    const token = context.req.headers.authorization.split("Bearer ")[1]

    const _decoded = jwt.verify(token, process.env.JWT_SECRET_KEY)

    return next()
  } catch (error) {
    return returns({ result: "Invalid Token" })
  }
}

File UserList.ts

export const UserList = async (parent, args, context, info, next, returns) => {
  try {

    //Do somethings.....

    return returns({ result: "result: " + Math.floor(Math.random() * 100)})

  } catch (error) {
    return returns({ result: "error" })
  }
}

Package Sidebar

Install

npm i graphql-resolvers-middleware

Weekly Downloads

0

Version

1.0.5

License

MIT

Unpacked Size

9.89 kB

Total Files

11

Last publish

Collaborators

  • fesa6654