TypeScript Mongo Codegen

Ryan P. Hansen6/20/2020, 12:00:00 AM

TypeScript Mongo Codegen

npm downloads Travis Coverage Status Dev Dependencies Known Vulnerabilities styled with prettier

This project generates types for a seamless integration between GraphQL and MongoDB.

Usage

yarn add ts-mongo-codegen

./codegen.json

{
  "schema": "http://localhost:8082",
  "generates": {
    "./src/gql/types.ts": {
      "plugins": [
        "typescript",
        "typescript-operations",
        "typescript-resolvers",
        "ts-mongo-codegen",
      ]
    }
  }
}

./gql/books.schema

type Book @collection(name: "books") {
  id: ObjectId
  title: String
  author: String
}

./src/stores/mongo.ts

import { connect } from 'ts-mongo-codegen'
import { mongoFactory } from '../gql/types'

export async function mongoStore(url: string, name: string) {
  const db = (await connect(url)).db(name)
  const datastore = mongoFactory(db)
  // datastore.books is a mongo collection
  return datastore
}

Upcoming Release

  • Augment your schema with CRUD operations for your collections.
  • Generate a changelog to keep a running list of changes to a document
  • Generate subscriptions

Turns This

Example Schema

Into This

Into Tis