graphql-form-handler

0.0.4 • Public • Published

GraphQL Forms Handler

This package provides a generalized graphql mutation meant to handle key-value pair data submitted through an HTML form. The data is sent to an email target using Mailgun.

Installation

$ npm install graphlql-form-handler --save

Usage

The GraphQL mutation behavior is baked into the package, however, the email template and Mailgun credentials (Mailgun must be configured) can be configured.

This usage example shows how the package can be used with ExpressJS.

const {GraphQLSchema, GraphQLObjectType} = require('graphql');
const {createGraphQLFormHandlerMutation} = require('graphql-form-handler');
const express = require('express');
const expressGraphQL = require('express-graphql');
 
const mutationConfig = {
  mailgun: {
    apiKey: 'key-XXXXXXXX',
    domain: 'funstuff@happyland.com',
    from: 'no-reply@happyland.com',
    to: 'hr@someplace.com',
    subject: 'Contact Request from Customer',
  },
  template: `
    <html>
      <body>
        <p>Here's a form submission!</p>
        {{formData}}
      </body>
    </html>`;
};
 
const schema = new GraphQLSchema({
  query: ...,
  mutation: new GraphQLObjectType({
    name: 'mutation',
    fields: () => ({
      formHandler: createGraphQLFormHandlerMutation(mutationConfig),
    }),
  }),
});
 
const app = express();
...
 
app.use('/graphql', expressGraphQL((request) => ({
  schema,
  rootValue: {request},
})));

Dependencies (3)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i graphql-form-handler

    Weekly Downloads

    5

    Version

    0.0.4

    License

    MIT

    Last publish

    Collaborators

    • iteam-consulting