npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

phirise

v0.6.1

Published

CSV inputs to Graphql create mutations

Downloads

16

Readme

Phirise

Description

Convert a related set of CSV inputs to GraphQL mutations and Query Variables that can be used to send data to a GraphQL service. The inverse, reading from graphQL service to set of CSV outputs is a future goal. No user interface provided, see related projects for React 16+ and Angular 6+ user interface components. Simple examples are provided in a separate repository for React and Angular using Apollo Client.

Map Specification - Transform Template

Specifies The Mapping from input values in multiple CSV inputs to values in a graphql service.

Postgraphile First

Initial implementation uses the schema generated by [Postgraphile](https://www.graphile.org/postgraphile/"Instant GraphQL API for PostgreSQL database").

Additional implementations can be added by the user.

Using Introspection to Make Life Easier

Example Queries:

Get Type Information for a Specific Type

{
  __type(name: "StationaryAcousticValue") {
    kind
    name
    description
    fields {
      name
      description
      type {
        kind
        name
      }
      args {
        name
        description
      }
    }
  }
}

Get a Schema

 {__schema {
   queryType {
     name
   }
}}

Getting A List Mutations with Input Names with types, and Return Types

  __type(name: "Mutation") {
    fields {
      name
      description
      type {
        kind
        name
      }
      args {
        name
        type {
          ofType {
            kind
            name
            inputFields {
              name
              description
              type {
                ofType {
                  name
                  description
                }
              }
            }
          }
        }
      }
    }
  }
}

A Single Element in the Result From the Above Introspection

  "name": "createSite",
  "description": "Creates a single `Site`.",
  "type": {
    "kind": "OBJECT",
    "name": "CreateSitePayload"
  },
  "args": [
    {
      "name": "input",
      "type": {
        "ofType": {
          "kind": "INPUT_OBJECT",
          "name": "CreateSiteInput",
          "inputFields": [
            {
              "name": "clientMutationId",
              "description": "An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.",
              "type": {
                "ofType": null
              }
            },
            {
              "name": "site",
              "description": "The `Site` to be created by this mutation.",
              "type": {
                "ofType": {
                  "name": "SiteInput",
                  "description": "An input for mutations affecting `Site`"
                }
              }
            }
          ]
        }
      }
    }
  ]
}

Creating and Updating Values

Create Value

Survey

mutation CreateSurvey($survey: CreateSurveyInput! ){
  createSurvey(input: $survey) {
    survey {
      id
    }
  }
}

Query Param:

{
  "survey": {
    "survey": {
      "projectId": -1,
      "startDate": "2017-06-28",
      "grtsId": 18
    }
  }
}

AcousticEvent

ClutterType

mutation CreateClutterType($ct: CreateClutterTypeInput! ){
  createClutterType(input: $ct) {
    clutterType {
      description
    }
  }
}

Query Param:

{
  "ct": {
    "clutterType": {
      "description": "Building"
    }
  }
}

Update Value

ClutterType

  mutation UpdateClutterTypeDescription($ctd: UpdateClutterTypeInput!) {
  updateClutterType(input: $ctd) {
    clutterType {
      description
    }
  }
}

Query Param:

{
  "ctd": {
    "id": "WyJjbHV0dGVyX3R5cGVzIiwxXQ==",
    "clutterTypePatch": {
      "description": "Water"
    }

  }
}