Skip to content

Codegeneration Tools to work with Typescript Mongo and GraphQL

License

Notifications You must be signed in to change notification settings

rphansen91/ts-mongo-codegen

Repository files navigation

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. Generate All CRUD and Pagination Operations (10 minutes or less)

Usage

yarn add @elevatejs/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

About

Codegeneration Tools to work with Typescript Mongo and GraphQL

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published