This repository holds all of the microservices that will make up JASSS' frontend application - Solarvoyant - ostensibly a combination of the words 'Solar' and 'Clairvoyant'.
Our monolithic repository utilises pnpm as our package manager and changesets for versioning.
pnpm is a much more space efficient and speed-focussed package manager, and also has support for workspaces to manage multi-project repositories like our one. Thus, our project utilises a pnpm workspace.
Do note that we are utilising Node 21 for our project, so please ensure your Node version is up to date before anything else. nvm is highly recommended.
pnpm can be installed by simply running:
npm install -g pnpm
You will notice that there is a package.json within each package, but few to no dependencies. This is because an advantage of using workspaces is that of shared dependencies. Since most if not all of our repositories will utilise linting and Prettier, these packages have been placed in the root level package.json. Any additional packages that individual packages may need can simply be added to the corresponding package.json.
To install all modules in all packages, run:
pnpm i --recursive
We are utilising changesets to help organise versioning of packages. It also allows us to create detailed changelogs and as much documentation as we want.
Everything is already setup, but every time a set of changes is to be considered as a new version, run pnpm changeset to create a new changeset, and follow its instructions.
Learn more here.
Run the following command to build all packages from the project root directory.
chmod +x build-all.sh && ./build-all.sh
