Skip to content

feat: Encapsulate Platform Conditional Exports #582

@AustinChangLinksys

Description

@AustinChangLinksys

Summary

Encapsulated all platform-specific conditional imports into entry point files, eliminating exposed if (dart.library.*) patterns in consumer files.

Changes

New Entry Point Files Created (7 files)

  • lib/core/utils/ip_getter/ip_getter.dart
  • lib/util/url_helper/url_helper.dart (refactored)
  • lib/util/export_selector/export_selector.dart
  • lib/util/get_log_selector/get_log_selector.dart
  • lib/constants/client_type/client_type.dart
  • lib/core/utils/assign_ip/assign_ip.dart
  • lib/core/utils/assign_ip/mobile_assign_ip.dart (no-op native impl)

Consumer Files Updated (17 files)

All consumer files now use clean single-line imports instead of conditional imports.

Benefits

  • Cleaner code: Consumers only import entry point files
  • Encapsulation: Platform-specific logic hidden inside entry points
  • Maintainability: Changes to platform implementations don't affect consumers

Documentation

See doc/audit/platform-conditional-exports-audit.md for full audit report.

Branch

austin/platform-conditional-exports-encapsulation

Verification

  • flutter analyze passes
  • flutter build web succeeds

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions