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" })
  }
}

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i graphql-resolvers-middleware

      Weekly Downloads

      1

      Version

      1.0.5

      License

      MIT

      Unpacked Size

      9.89 kB

      Total Files

      11

      Last publish

      Collaborators

      • fesa6654