|
1 |
| -<h1 align="center"><strong>Boilerplate for a Basic GraphQL Server</strong></h1> |
| 1 | +<h1 align="center"><strong>Boilerplate for a Puppeteer on AWS Lambda</strong></h1> |
2 | 2 |
|
3 | 3 | <br />
|
4 | 4 |
|
5 |
| - |
| 5 | + |
6 | 6 |
|
7 |
| -<div align="center"><strong>🚀 Bootstrap your GraphQL server within seconds</strong></div> |
8 |
| -<div align="center">Basic starter kit for a flexible GraphQL server for Node.js - based on best practices from the GraphQL community.</div> |
| 7 | +<div align="center"><strong>🚀 Bootstrap your Puppeteer function within seconds</strong></div> |
| 8 | +<div align="center">Basic starter kit for Puppeteer on AWS Lambda</div> |
9 | 9 |
|
10 |
| -## Features |
11 |
| - |
12 |
| -- **Scalable GraphQL server:** The server uses [`apollo-server v2`](https://github.com/apollographql/apollo-server) which is based on new Apollo Server |
13 |
| -- **GraphQL database:** Includes GraphQL database binding to [Prisma](https://www.prisma.io) (running on MySQL) |
14 |
| -- **Tooling**: Out-of-the-box support for [GraphQL Playground](https://github.com/prisma/graphql-playground) & [query performance tracing](https://github.com/apollographql/apollo-tracing) |
15 |
| -- **Extensible**: Simple and flexible [data model](./database/types.graphql) – easy to adjust and extend |
16 |
| -- **No configuration overhead**: Preconfigured [`graphql-config`](https://github.com/prisma/graphql-config) setup |
17 |
| - |
18 |
| -For a fully-fledged **GraphQL & Node.js tutorial**, visit [How to GraphQL](https://www.howtographql.com/graphql-js/0-introduction/). You can more learn about the idea behind GraphQL boilerplates [here](https://blog.graph.cool/graphql-boilerplates-graphql-create-how-to-setup-a-graphql-project-6428be2f3a5). |
19 | 10 |
|
20 | 11 | ## Requirements
|
21 | 12 |
|
22 |
| -You need to have the [GraphQL CLI](https://github.com/graphql-cli/graphql-cli) installed to bootstrap your GraphQL server using `graphql init`, [Prisma](https://github.com/graphcool/prisma) to deploy and update database use `prisma deploy` and [Yarn](https://yarnpkg.com/lang/en/) to install npm packages: |
| 13 | +[Yarn](https://yarnpkg.com/lang/en/) to install npm packages: |
23 | 14 |
|
24 | 15 | ```sh
|
25 |
| -npm install -g graphql-cli prisma yarn |
| 16 | +npm install -g yarn |
26 | 17 | ```
|
27 | 18 |
|
28 | 19 | ## Getting started
|
29 | 20 |
|
30 | 21 | ```sh
|
31 | 22 | # 1. Clone the project
|
32 |
| -git clone https://github.com/danilobrinu/prisma-apollo-starter.git |
| 23 | +git clone https://github.com/danilobrinu/aws-lambda-puppeteer-bootstrap.git |
33 | 24 |
|
34 | 25 | # 2. Navigate to the new project
|
35 |
| -cd prisma-apollo-starter |
| 26 | +cd aws-lambda-puppeteer-bootstrap |
36 | 27 |
|
37 | 28 | # 3. Install npm packages
|
38 | 29 | yarn install
|
39 | 30 |
|
40 |
| -# 4. Start server (runs on http://localhost:4000) and open GraphQL Playground |
41 |
| -yarn dev |
| 31 | +# 4. Code and upload to AWS Lambda |
| 32 | +# zip the content of the dir and upload to AWS Lambda |
42 | 33 | ```
|
43 | 34 |
|
44 |
| -> Note: Create new enviroment using example.env and update **`__PRISMA_ENDPOINT__`** if you don't have prisma endpoint run `prisma deploy` and use Demo Server to get prisma endpoint |
| 35 | +> Note: If the zip size is more than 10mb you need upload the zip to s3 and use the link in your AWS Lambda |
45 | 36 |
|
46 | 37 |
|
47 |
| - |
48 |
| - |
49 | 38 | ## Documentation
|
50 | 39 |
|
51 |
| -### Commands |
52 |
| - |
53 |
| -* `yarn start` starts GraphQL server on http://localhost:4000 |
54 |
| -* `yarn debug` starts GraphQL server in debug mode on http://localhost:4000 |
55 |
| -* `yarn playground` opens the GraphQL Playground for the `projects` from [`.graphqlconfig.yml`](./.graphqlconfig.yml) |
56 |
| -* `yarn dev` starts GraphQL server on http://localhost:4000 _and_ opens GraphQL Playground |
57 |
| -* `prisma <subcommand>` gives access to local version of Prisma CLI (e.g. `prisma deploy`) |
58 |
| - |
59 |
| -> **Note**: We recommend that you're using `yarn dev` during development as it will give you access to the GraphQL API or your server (defined by the [application schema](./src/schema.graphql)) as well as to the Prisma API directly (defined by the [Prisma database schema](./src/generated/prisma.graphql)). If you're starting the server with `yarn start`, you'll only be able to access the API of the application schema. |
60 |
| -
|
61 | 40 | ### Project structure
|
62 | 41 |
|
63 |
| - |
64 |
| - |
65 |
| -| File name | Description <br><br>| |
| 42 | +| File name | Description | |
66 | 43 | | :-- | :-- |
|
67 |
| -| `├── example.env` | Use this file to configure your enviroment (copy/paste or rename to .env) | |
68 |
| -| `├── .graphqlconfig.yml` | Configuration file based on [`graphql-config`](https://github.com/prisma/graphql-config) (e.g. used by GraphQL Playground).| |
69 |
| -| `└── database/ ` | _Contains all files that are related to the Prisma database service_ |\ |
70 |
| -| ` ├── prisma.yml` | The root configuration file for your Prisma database service ([docs](https://www.prisma.io/docs/reference/prisma.yml/overview-and-example-foatho8aip)) | |
71 |
| -| ` └── enums.graphql` | Defines your enums for data model (written in [GraphQL SDL](https://blog.graph.cool/graphql-sdl-schema-definition-language-6755bcb9ce51)) | |
72 |
| -| ` └── seed.graphql` | Defines your seed data model (written in [GraphQL SDL](https://blog.graph.cool/graphql-sdl-schema-definition-language-6755bcb9ce51)) | |
73 |
| -| ` └── types.graphql` | Defines your types for data model (written in [GraphQL SDL](https://blog.graph.cool/graphql-sdl-schema-definition-language-6755bcb9ce51)) | |
74 |
| -| `└── src/ ` | _Contains the source files for your GraphQL server_ | |
75 |
| -| ` ├── index.js` | The entry point for your GraphQL server | |
76 |
| -| ` ├── schema.graphql` | The **application schema** defining the API exposed to client applications | |
77 |
| -| ` ├── resolvers/ ` | _Contains the implementation of the resolvers for the application schema_ | |
78 |
| -| ` └── generated/ ` | _Contains generated files_ | |
79 |
| -| ` └── prisma.grapghql` | The **Prisma database schema** defining the Prisma GraphQL API | |
| 44 | +| `├── .editoconfig` | Use this file to configure your editor | |
| 45 | +| `├── .gitignore` | User this file to configure ignore files by git | |
| 46 | +| `├── .prettierc` | Use this file to configure the prettier formatter | |
| 47 | +| `├── index.js` | _The template for your AWS Lambda function_ | |
| 48 | +| `├── package.json` | The npm package list | |
| 49 | +| `├── README.md` | The documentation | |
| 50 | +| `└── yarn.lock` | The yarn lock file | |
80 | 51 |
|
81 | 52 | ## Contributing
|
82 | 53 |
|
83 |
| -The GraphQL boilerplates are maintained by the GraphQL community, with official support from the [Apollo](https://dev-blog.apollodata.com) & [Graphcool](https://blog.graph.cool/) teams. |
84 |
| - |
85 |
| -Your feedback is **very helpful**, please share your opinion and thoughts! If you have any questions or want to contribute yourself, join the [`#graphql-boilerplate`](https://graphcool.slack.com/messages/graphql-boilerplate) channel on our [Slack](https://graphcool.slack.com/). |
| 54 | +Your feedback is **very helpful**, please share your opinion and thoughts! If you have any questions or want to contribute yourself. |
0 commit comments