Clone the repo and install dependencies:
git clone https://github.com/martinshaw/marchive.git marchive
cd marchive
pnpm install
The Marchive codebase is structured as a monorepo which separates areas of functionality, eliminate duplicated code and ensures that all functionality is available regardless of the type of process which is accessing the it (e.g. the renderer and main process under the Electron environment, and spawned / forked child processes, cross-process database setup and fast cross-process logging calls).
-
packages/electron-app
- The Electron app which provides the user interface and manages the app's main and renderer processes under the Electron environment. -
packages/database
- The database package which provides a cross-process database setup, migration, model classes, serialized model data types, and Sequelize ORM-related functionality. -
packages/logger
- The logger package which provides a cross-process logging setup, log level functions, configuration, formatting, and rotation provided by the Winston logging library. -
packages/utilities
- The utilities package which provides a cross-process convenience functions, types, and constants.
Start the app in the dev
environment:
pnpm run start
To package apps for the local platform:
pnpm run package