name: stream_chat_flutter
repository: https://github.com/GetStream/stream-chat-flutter

packages:
  - packages/**

scripts:
  postclean:
    run: melos run clean:flutter --no-select
    description: Runs "flutter clean" in all Flutter packages

  lint:all:
    run: melos run analyze && melos run format
    description: Run all static analysis checks

  analyze:all:
    run: melos run analyze && melos run metrics
    description: Run all

  analyze:
    run: |
      melos exec -c 5 --ignore="*example*" -- \
        dart analyze --fatal-infos .
    description: |
      Run `dart analyze` in all packages.
       - Note: you can also rely on your IDEs Dart Analysis / Issues window.

  format:
    run: dart format --set-exit-if-changed .
    description: |
      Run `dart format --set-exit-if-changed .` in all packages.

  metrics:
    run: |
      melos exec -c 1 --ignore="*example*" -- \
        flutter pub run dart_code_metrics:metrics analyze lib
    description: |
      Run `dart_code_metrics` in all packages.
       - Note: you can also rely on your IDEs Dart Analysis / Issues window.

  lint:pub:
    run: |
      melos exec -c 5 --no-private --ignore="*example*" -- \
            flutter pub publish --dry-run
    description: |
      Run `pub publish --dry-run` in all packages.
       - Note: you can also rely on your IDEs Dart Analysis / Issues window.

  generate:all:
    run: melos run generate:dart && melos run generate:flutter
    description: Build all generated files for Dart & Flutter packages in this project.

  generate:dart:
    run: melos exec -c 1 --depends-on="build_runner" --no-flutter -- "dart run build_runner build --delete-conflicting-outputs"
    description: Build all generated files for Dart packages in this project.

  generate:flutter:
    run: melos exec -c 1 --depends-on="build_runner" --flutter -- "flutter pub run build_runner build --delete-conflicting-outputs"
    description: Build all generated files for Flutter packages in this project.

  test:all:
    run: melos run test:dart --no-select && melos run test:flutter --no-select
    description: Run all Dart & Flutter tests in this project.

  test:dart:
    run: melos exec -c 1 --fail-fast -- "flutter test --coverage"
    description: Run Dart tests for a specific package in this project.
    packageFilters:
      flutter: false
      dirExists: test

  test:flutter:
    run: melos exec -c 4 --fail-fast -- "flutter test --coverage"
    description: Run Flutter tests for a specific package in this project.
    packageFilters:
      flutter: true
      dirExists: test

  clean:flutter:
    run: melos exec -c 4 --fail-fast -- "flutter clean"
    description: Run Flutter clean for a specific package in this project.
    packageFilters:
      flutter: true

  coverage:ignore-file:
    run: |
      melos exec -c 5 --fail-fast -- "\$MELOS_ROOT_PATH/.github/workflows/scripts/remove-from-coverage.sh"
    description: Removes all the ignored files from the coverage report.
    packageFilters:
      dirExists: coverage

  docs:
    run: |
      npm install -g https://github.com/GetStream/stream-chat-docusaurus-cli &&
      npx stream-chat-docusaurus -i -s
    description: Runs the docusaurus documentation locally.
