A service library for our projects respecting application boundaries and encapsulating dependencies.
It works best for projects created with @gridonic/cli.
The library is designed to provide services used repeatedly in projects.
- Provides interfaces for each exported service and model
- The services are mostly independent from each other, so they can be added selectively to the projects
- Written in typescript
- Standardizes our projects by using interfaces for common services and models
- Encapsulates dependencies, making it possible to replace them easier if needed
- No magic or restrictions: services can be extended, copied or completely replaced if they are not suiting the project
- Only used services get compiled into project
Services can be imported selectively into a project. It is recommended to do all imports in one file in each project and exporting the types. This prevents the code from being cluttered with import statements from this library.
Install dependencies
npm install
Run unit tests
npm run test
Lints and fixes files
npm run lint
When ready to release, execute the following steps, given that all changes are commited in the master branch:
- List changes in the CHANGELOG.md
- Bump your version and automatically create a git tag with
npm version <type>
, where type is patch, minor or major - Push the master branch
git push
and the tagsgit push --tags
- Create a release in github. A github action will then automatically publish the package to npm
- Every service must be documented
- Every service must implement an interface
- Every service must be unit-tested