/prisma-serverless

Prisma (Nexus) + Typescript + AWS Serverless Lambda = :fireworks:

Primary LanguageTypeScriptMIT LicenseMIT

Prisma Serverless

Template for Prisma (Nexus) + Typescript + AWS Serverless Lambda = 🎆

This boilerplate includes:

There's more to come 👀

Table of contents

Project Structure

.
├── config/                     # Serverless env
├── prisma/                     # Prisma related config & Datamodel
├── src/                        # The magic happens here
│   ├── generated/              # Generated prisma schema & client
│   ├── permissions/            # Resolvers permissions
│   └── resolvers/              # App resolvers
│       ├── Mutation/           # Resolvers mutations
│       └── Query/              # Resolvers queries
├── typings/                    # Typescript generic typings
├── .babelrc                    # babel config
├── .editorconfig               # editor config
├── .eslintrc.js                # eslint config
├── .gitignore                  # git ignore list
├── .nvmrc                      # nvm config
├── .prettierrc                 # Prettier configuration
├── docker-compose.yml          # Docker compose file (for local server)
├── package.json                # build scripts and dependencies
├── README.md                   # This file ;)
├── serverless.yml              # Serverless configuration
├── tsconfig.json               # Typescript configuration
└── yarn.lock                   # yarn lock file

Quickstart

Prerequisites

You'll need a prisma server setup to use this template. You can either create a local prisma server using Docker:

docker-compose up -d

Or deploy to a new prisma demo server:

yarn prisma deploy

Then, create an .env referencing the prisma endpoint:

PRISMA_ENDPOINT="http://localhost:4469/app/dev"
PRISMA_SECRET="PRISMA_SECRET"
APP_SECRET="MY_APP_SECRET"
# install dependencies
yarn install

# Run local lambda http environment (API Gateway simulator)
yarn dev

# Run tests
yarn run test

Deploying

  1. Deploy & Generate the prisma schema based on the datamodel to the prisma server.
# Deploy the schema to the prisma server & generate prisma client & schema
yarn prisma deploy

# Resolvers deployment

# Deploy (development)
yarn deploy:dev

# Deploy (production)
yarn deploy:prod

Help