Files
privacy.sexy/docs/development.md
undergroundwires ff84f5676e Transition to eslint-config-airbnb-with-typescript
- Migrate to newer `eslint-config-airbnb-with-typescript` from
  `eslint-config-airbnb`.
- Add also `rushstack/eslint-patch` as per instructed by
  `eslint-config-airbnb-with-typescript` docs.
- Update codebase to align with new linting standards.
- Add script to configure VS Code for effective linting for project
  developers, move it to `scripts` directory along with clean npm
  install script for better organization.
2023-08-04 16:39:36 +02:00

2.2 KiB

Development

Before your commit, a good practice is to:

  1. Run unit tests
  2. Lint your code

You could run other types of tests as well, but they may take longer time and overkill for your changes. Automated actions executes the tests for a pull request or change in the main branch. See ci-cd.md for more information.

Commands

Prerequisites

  • Install node >15.x.
  • Install dependencies using npm install.

Testing

  • Run unit tests: npm run test:unit
  • Run integration tests: npm run test:integration
  • Run e2e (end-to-end) tests
    • Interactive mode with GUI: npm run test:e2e
    • Headless mode without GUI: npm run test:e2e -- --headless

📖 Read more about testing in tests.

Linting

  • Lint all (recommended 💡): npm run lint
  • Markdown: npm run lint:md
  • Markdown consistency npm run lint:md:consistency
  • Markdown relative URLs: npm run lint:md:relative-urls
  • JavaScript/TypeScript: npm run lint:eslint
  • Yaml: npm run lint:yaml

Running

  • Run in local server: npm run serve
    • 💡 Meant for local development with features such as hot-reloading.
  • Run using Docker:
    1. Build: docker build -t undergroundwires/privacy.sexy:latest .
    2. Run: docker run -it -p 8080:80 --rm --name privacy.sexy undergroundwires/privacy.sexy:latest

Building

  • Build web application: npm run build
  • Build desktop application: npm run electron:build
  • (Re)create icons (see documentation): npm run create-icons

Utility Scripts

  • Run fresh NPM install: ./scripts/fresh-npm-install.sh
    • This script provides a clean NPM install, removing existing node modules and optionally the package-lock.json (when run with -n), then installs dependencies and runs unit tests.
  • Configure VSCode: ./scripts/configure-vscode.sh
    • This script checks and sets the necessary configurations for VSCode in settings.json file.

You should use EditorConfig to follow project style.

For Visual Studio Code, .vscode/extensions.json includes list of recommended extensions.