Minimalistic photography toolkit progressive web application.
This is a monorepo containing Photo companion web-application and it's supporting packages based on workspaces. Each workspace has it's own README file with more details.
bridge-schedule— Saint-Petersburg bridges schedule provider;lights-schedule— city lights schedule provider;moon-sun-calc— the Sun and the Moon calculations;photo-companion— the main web-app;types— common project types;ui— core UI components and helpers;utils— common project utility functions;- [
versioned-local-storage][package-versioned-local-storage] — browser local storage with versioning;
Project uses pnpm workspaces.
Install pnpm if you don't have one:
npm i pnpm -g
After that install dependencies for all workspaces:
pnpm i -r
Use pnpm dev command to start project locally and pnpm build to build the project.
There are several linter commands:
pnpm lint:code— useseslint;pnpm lint:styles— usesstylelintto lint styles;pnpm lint:types— usestscto lint types;
All checks can be run concurrently using pnpm lint command.
All tests are located in */test directories inside a workspace.
The environment should be specified in vitest.config.ts file.
- To run test, run
pnpm test:unit; - To run a particular test suite, use
pnpm test:unit <suite-name>, for examplepnpm test:unit moon;