GrAMPS CLI — Tools for Data Source Development
To get started with the GrAMPS CLI:
# Install the CLI yarn add --dev @gramps/cli@beta # npm install --save-dev @gramps/cli@beta
NOTE: We prefer Yarn, but if you use npm, use the alternative commands shown in comments below each example.
Start an empty development gateway
$(yarn bin)/gramps dev # $(npm bin)/gramps dev
This will start a gateway server on port 8080 (or a random port if 8080 is in use). You can open the GraphQL Playground at http://localhost:8080/playground to verify the gateway is working.
Develop a data source locally
If you're working on a custom data source, you can test it by running the following:
# Using live data $(yarn bin)/gramps dev --data-source ../my-data-source # $(npm bin)/gramps dev --data-source ../my-data-source # Turn on mock data $(yarn bin)/gramps dev --data-source ../my-data-source --mock # $(npm bin)/gramps dev --data-source ../my-data-source --mock
NOTE: You can develop using multiple local data sources by passing multiple paths to the
--data-sourcesoption (an alias of
--data-source):$(yarn bin)/gramps dev --data-sources ./one ./two # $(npm bin)/gramps dev --data-sources ./one ./two
This is helpful if you're working on something like schema stitching.
Start a custom GraphQL gateway
When working with the CLI, any GrAMPS-powered gateway can be used for development — just provide the path to its start script in the
$(yarn bin)/gramps dev --gateway ../my-gateway # $(npm bin)/gramps dev --gateway ../my-gateway
NOTE: This is useful for running a production gateway locally.
Use a local data source with a custom gateway
$(yarn bin)/gramps dev -g ./gateway -d ./data-source # $(npm bin)/gramps dev -g ./gateway -d ./data-source
NOTE: For brevity, the shorthand of
-drespectively — are used here.
If the data source is already installed on the gateway, GrAMPS will override it with the local version. This is extremely useful for debugging, maintenance, and experimentation.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!