Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/everlastingbugstopper/js-template
js-template
https://github.com/everlastingbugstopper/js-template
Last synced: 17 days ago
JSON representation
js-template
- Host: GitHub
- URL: https://github.com/everlastingbugstopper/js-template
- Owner: EverlastingBugstopper
- License: mit
- Created: 2023-09-01T18:43:08.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-01T18:43:13.000Z (over 1 year ago)
- Last Synced: 2024-11-12T16:49:20.851Z (3 months ago)
- Language: JavaScript
- Size: 5.86 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Apollo Server JavaScript Subgraph Template
[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/new/template/wBVM8z?referralCode=xsbY2R)
This template can be used to quickly create an [Apollo Federation] subgraph with the [@apollo/subgraph] and [@apollo/server] packages. You can use it from [Rover](https://www.apollographql.com/docs/rover/commands/template) with `rover template use --template subgraph-javascript-apollo-server`.
## What's Included
- A basic, [Apollo Federation] subgraph with simple examples for queries, entities, and mutations. You can run this subgraph with `npm start`.
- [nodemon] is setup for `npm run dev` for a hot-reloading development environment.
- Example tests in the `src/__tests__` directory. You can run these tests with `npm run test`.
- GitHub Actions workflows which will:
- Run `npm run test` on every push.
- Check the schema against Apollo Studio on every push.
- Publish the subgraph to Apollo Studio on every push to the `main` branch.## Next Steps
- Setup project with `npm install`.
- Start the server with `npm start` to start a local version of Apollo Explorer.
- Download [Rover] and start it using the command printed out after `npm start` in the previous step (which should start with something like `rover dev`).
- Replace "name" in `package.json` with the name of your subgraph.
- Start filling in your own schema in `schema.graphql`.
- Start filling in your own types and resolvers in `src/resolvers`.
- Set these secrets in GitHub Actions to enable all checks:
- `APOLLO_KEY`: An Apollo Studio API key for the supergraph to enable schema checks and publishing of the subgraph. Check the Apollo documentation for [how to obtain this API key].
- `APOLLO_GRAPH_REF`: A string with the following format: `graph_id@variant_name`. You can find your graph's ID in that graph's Settings page in Studio.
- `PRODUCTION_URL`: The URL of the deployed subgraph.
- Remove the if: false lines from .github/workflows/checks.yaml and .github/workflows/deploy.yaml to enable schema checks and publishing.
- Write your custom deploy logic in `.github/workflows/deploy.yaml`.
- Send the Router-Authorization header [from your Cloud router](https://www.apollographql.com/docs/graphos/routing/cloud-configuration#managing-secrets) and set the ROUTER_SECRET environment variable wherever you deploy this to.[apollo federation]: https://www.apollographql.com/docs/federation/
[@apollo/server]: https://www.apollographql.com/docs/apollo-server/
[@apollo/subgraph]: https://www.apollographql.com/docs/federation/subgraphs
[rover]: https://www.apollographql.com/docs/rover/
[nodemon]: https://www.npmjs.com/package/nodemon
[how to obtain this api key]: https://www.apollographql.com/docs/graphos/api-keys/#graph-api-keys