Contrail Library
Common functionality and libraries that are used throughout VibeIQ's services and apps.
Local Development
Local development is largely test-driven.
When changing functionality:
- Write tests that define the expected behavior
- Implement changes so tests pass
- Test your changes where the library is used (e.g.
contrail-api
)
- If the changes is small:
npm run build
in the library your change is modifying- Copy build files in
lib
into the node_modules
of the project you want to use the new code - Make sure the behavior has changed as expected
- If the change is large and spans multiple libraries:
- Publish an alpha version of the library to NPM
- Install the alpha version where the change needs to be tested
Example - Copy changes from core
library into the Users Service in the api
$ cp -r contrail-lib/core/lib/* \
contrail-api/services/users/node_modules/@contrail/core/lib
Publish Change to NPM Library
cd <library-to-publish>
npm version [major | minor | patch | prerelease --preid=alpha]
- Effect - Upgrade the version number of the library that you're currently in
npm run build
npm publish
Pre-commit Formatting Check
Every time you run git commit
, a pre-commit hook will run to check if the code is formatted correctly. If it is not, the commit will fail. To fix this, run npm run lint-staged:format
from the top-level directory and then try to commit again. This cannot be run within a service's directory those directories do no have lint-staged installed.
Bypass Formatting Check
This check can be bypassed by setting the BYPASS_FORMATTING_CHEKC
to true
. The best way to do this is to set that environment variable temporarily, only for the life cycle of the commit. This reduces the likelihood of accidentally committing unformatted code.
BYPASS_FORMATTING_CHECK=true git commit -m "commit message"