@genesisx/graphql-utils
v4.0.2-beta0.2
Published
This Generator enables adding utililty methods for graphql
Downloads
372
Maintainers
Keywords
Readme
Genesis graphql-utils
This package provides various utilities that can be used in a graphql based genesis app.
Running unit tests
Run nx test graphql-utils
to execute the unit tests via Jest.
Usage
Prerequsite
For Using this package into your app, please follow the below steps
- Install this npm package to your repo first
yarn add @genesisx/graphql-utils
- or
npm install @genesisx/graphql-utils
- Now follow the either of the two modes to use this generator
Via NX Console
- Goto nx console -> Genrate > search for @genesisx/graphql-utils - template
- Use Nx Console > Genrate > @genesisx/graphql-utils
Via Command line
- Alternatively, below command can be used
nx generate @genesisx/graphql-utils:template
- Fill the required parameters asked after that
- If nx is not already installed then install it using
npm install -g nx
Build Stages
Checkout
This stage setup git modules and checkout code merge is possible for feature & master branch
Prepare
This stage setup the base modules needed by respective projects for subsequent stages.
Lint & UnitTest
These Stages runs linting and unit test check against config made in the projects.eg files: jest.config.js, .eslintrc.json
Build & Docker
These stages build the apps and create docker images for affected applications and publish those images to artefactory store. '''here PS docker registry been used'''
Deployment
This stage leverage the k8 config in each apps to deploy app to infra configured in those files. i.e: ingress,service, deployment yaml.
Note
By leveraging nx framework we are able to make pipeline optimised in easier way to run affected apps. eg: '''yarn nx affected:apps --all'''
Documentation
- Refer additional documentation for more details
Contribution
Build and Test
Run nx build graphql-utils
to build the package.
Run nx lint graphql-utils
to run lint checks on the package.
Run nx test graphql-utils
to execute the unit tests via Jest.
Publishing
To publish the package you must first be logged into NPM (npm login) then run this command from the root of the project.
- Make sure the package name in package.json should start with @genesisx/
- Also use the correct version number in package.json same will be used for the published package.
- Use your NPM js credentials (Publicis Sapient) with publish rights
- Verify the package at https://www.npmjs.com/settings/genesisx/packages
npm publish dist/packages/graphql-utils --access public
Note
packages/graphql-utils/src/commonServerConfig/GatewayBuilder.ts
has a getGateway method with an optional supergraphSdl(string) argument, which uses this method to generate federation gateways that support supergraph; without the argument, federation gateways are created without supergraph support.
It allows us to use the same method from both graphql and graphql-supergraph packages on creating federation service.