# This is a configuration file for devtools (`mojo_run`, `mojo_test) running
# within a Mojo checkout.

# The content has to parse to a Python dictionary literal. Strings of the form
# '@{ABC}' are aliases that will be substituted for their values before
# evaluation:
#  '@{BUILD_DIR}': path to the output directory

{
  # Each dev server will be configured as specified and mapped for the
  # indicated host using --map-origin.
  'dev_servers': [
    {
      'host': 'https://mojo.v.io/',
      # At this port the server will appear to the shell. That means actually
      # running on this port when running a Linux shell and being forwarded from
      # this port when running on Android. Using a fixed port enables caching
      # server responses between shell runs.
      'port': @{PORT},
      # First matching prefix will apply. Within the directiories specified for
      # a prefix, first location that contains the requested path will apply.
      'mappings': [
        ('', [
          # We map two directiories, so that both exploded dart apps under
          # checkout root and built apps in the build directory are available.
          # For example, one could refer to the apps of either type using urls:
          #  - https://core.mojoapps.io/spinning_cube.mojo
          #  - https://core.mojoapps.io/examples/dart/device_info/main.dart
          '@{BUILD_DIR}',
          '.'
        ]),
      ],
    },
  ],
}
