Template for Prisma (Nexus) + Typescript + AWS Serverless Lambda = 🎆
This boilerplate includes:
- 🚀 Apollo Server Lambda
- ⚡ Serverless with Webpack, Auto prune & Typescript support
- ⚗️ Prisma & CRUD schema generated using Nexus
- 👷 CircleCI configuration to deploy to lambda
- 🔒 Basic permissions with graphql-shield
There's more to come 👀
.
├── 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
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
- 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