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.
All packages are broken into 4 categories.
This directory contains web-applications packages. Right now it contains the only photo-companion
package itself.
This directory contains core packages used within monorepo.
types
— common project types;ui
— core UI components and helpers;utils
— common project utility functions;
This directory contains deprecated apps and packages.
photo-companion-svelte
—Svelte JS
implementation ofphoto-companion-app
,Solid JS
is used instead;ui-svelte
— core UI components and helpers based onSvelte JS
;
This directory contains independent packages used to build web-applications.
bridge-schedule
— Saint-Petersburg bridges schedule provider;lights-schedule
— city lights schedule provider;moon-sun-calc
— the Sun and the Moon calculations;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
— usesstylelint
to lint styles;pnpm lint:types
— usestsc
to 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
;