postgraphile-plugin-js-validation
TypeScript icon, indicating that this package has built-in type declarations

0.1.3 • Public • Published

postgraphile-plugin-js-validation

Postgraphile Plugin that allows mutation validation before hitting the database. ✨

⚠️ Don't see this Plugin as an excuse to skip defining proper constraints in your database.

Table of Contents

Introduction

TODO

Install

npm install postgraphile-plugin-js-validation

or 

yarn add postgraphile-plugin-js-validation

Examples

In our example we already have a mutation called authUser.

TODO

Basic Usage

// import
import { ValidationPlugin, handleErrors } from "postgraphile-plugin-js-validation";

// start postgraphile
postgraphile(process.env.DATABASE_URL, schemaName, {
  // ... options here
  handleErrors: handleErrors(),
  appendPlugins: [
    ValidationPlugin({
      authUser: async (input) => {
        // your validation logic
	// return an error object or {} / undefined
        return {
          "email": "Email is required",
	  "password": "Password is required"
        };
      },
    }),
  ],
})

Usage With Yup

import { ValidationPlugin, handleErrors } from "postgraphile-plugin-js-validation";
import { YupValidator } from "postgraphile-plugin-js-validation/dist/YupValidator";

postgraphile(process.env.DATABASE_URL, schemaName, {
  // ... options here
  handleErrors: handleErrors("shape"),
  appendPlugins: [
    ValidationPlugin({
      authUser: YupValidator(
        async (info) =>
          yup.object().shape({
            email: yup.string().email().required("Email is required"),
            password: yup.string().required("Password is required")
          }),
        { abortEarly: false }
      ),
    }),
  ],
})
);

And here is how the result looks like.

{
  "errors": [
    {
      "validation": {
        "email": "Email is required",
	"password": "Password is required",
      }
    }
  ],
  "data": {
    "authUser": null
  }
}

Readme

Keywords

none

Package Sidebar

Install

npm i postgraphile-plugin-js-validation

Weekly Downloads

1

Version

0.1.3

License

MIT

Unpacked Size

25.1 kB

Total Files

32

Last publish

Collaborators

  • knaackee