@evolver-fi/evolver-basics
v3.0.0
Published
Evolver common frontend component library
Downloads
549
Readme
Evolver frontend modules
This is a repository that contains libraries for Evolver frontend common use cases.
Usage
npm install @evolver-fi/evolver-basics
run npm run storybook
to see documentation about the individual components
Message log component
This is a frontend component that enables easy setup of log message views in an application with Evolver basics backend.
The component provides ready made views for
- Message log list
- Message details
Triggers component
This component supports listing and running Evolver backend triggerables. Also actions for those are exported for use in other places.
Scheduled tasks component
Management and triggering of scheduled tasks.
Status component
Show basic status information about the system via Reportables.
CRUD components
Frontend components for CRUD operations of DB entities. Requires a corresponding CRUD controller in
JWT components
Frontend for managing api tokens. Requires JwtController
from evolver-basics-spring
Development
New features and bugs should be tracked as issues in the evolver-front-modules repo. Review by the Evolver frontend team. Slack channel #fugu gets updates for PRs.
Testing
There are tests that use the Storybook to compare the rendered components both visually and as serialized DOM snapshots. To run the tests use
npm run test
The test report can be inspected under test-results
directory which contains a generated HTML report.
Pre-release process
NOTE: Publishing pre-release versions is not generally recommended outside of upcoming major versions. These instructions assume that a separate release branch is used to develop the upcoming major version.
- develop the feature on a branch starting from the relase branch
- make sure that all the tests pass and the storybook snapshots have been updated
- create a new release
- pull the feature branch
- run
make release
- Make sure to use an appropriate semantic version, for example
2.0.0-alpha.1
- Valid tags are
dev
,alpha
,beta
andrc
Release process:
- develop feature on a branch starting from main
- once finished, create PR to main. Remember Storybook example! Also make sure that all tests pass.
- When new stories are added, test snapshots should be generated and added to git. use
npm run update-snapshots
to generate the new snapshots and add them to git in a separate commit. Remember to build the static storybook instance withnpm run build-storybook
- When new stories are added, test snapshots should be generated and added to git. use
- after review merge PR
- Create a new release:
- pull the main branch
- run
make release
Develop without deploying the lib to NPM
To develop the library locally without needing to deploy the library after changes:
NOTE: npm link
is essentially a fancy symlink managed by the npm. You may run into unresolveable dependency issues.
- Add this project as a workspace to the main app project's package.json
"workspaces": [
"<path to evolver-front-modules>"
]
run
npm link
in the root folder of this projectrun
npm link @evolver-fi/evolver-basics
in the root folder of the app project that is using the library. Make sure the project contains all the needed peer dependencies.Run
npm run dev
in the evolver-front-modules projectRemember to run
npm unlink @evolver-fi/evolver-basics
in the root folder of the app project and remove the workspace from the package.json when you are done.
If there are problems still
rm -rf $APP_PROJET_DIR/.next/cache
where $APP_PROJECT_DIR is the project directory of the main app project could help if the main project is using NextJS