# postgraphile-plugin-js-validation

> Validate Mutations with JavaScript before hitting the database

Latest version **0.1.3** (published 2023-10-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install postgraphile-plugin-js-validation
pnpm add postgraphile-plugin-js-validation
yarn add postgraphile-plugin-js-validation
bun add postgraphile-plugin-js-validation
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.3 |
| Published | 2023-10-27 |
| First published | 2022-02-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 24.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Denis Knaack |
| Maintainers | knaackee |

## Links

- npm: https://www.npmjs.com/package/postgraphile-plugin-js-validation
- Repository: https://github.com/Knaackee/postgraphile-plugin-js-validation
- Homepage: https://github.com/Knaackee/postgraphile-plugin-js-validation#readme
- Issues: https://github.com/Knaackee/postgraphile-plugin-js-validation/issues
- npm.io page: https://npm.io/package/postgraphile-plugin-js-validation

## Dependencies (1)

- [yup](https://npm.io/package/yup.md) ^1.3.2

## Recent versions

- 0.1.3 (latest) — 2023-10-27
- 0.1.2 — 2022-02-02
- 0.1.1 — 2022-02-02
- 0.1.0 — 2022-02-02

## README

# 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](#introduction)
- [Install](#install)
- [Examples](#examples)
  - [Basic Usage](#basic-usage)
  - [Usage With Yup](#usage-with-yup)
- [API Reference](/docs/modules.md)

 

## 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



```javascript
// 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

```javascript
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.

```json
{
  "errors": [
    {
      "validation": {
        "email": "Email is required",
	"password": "Password is required",
      }
    }
  ],
  "data": {
    "authUser": null
  }
}
```

---
_Source: https://npm.io/package/postgraphile-plugin-js-validation · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
