dvStudioScreens top-level constant

List<DVStudioScreenSpec> const dvStudioScreens

Every screen free Studio has, in the order its rail puts them.

The ids are the ones dartvel_flutter's dvStudioServerSections and DVStudioScreenSpec use, and the two are held to each other by a test: a screen this list names that the rail does not have would be a link to nowhere, and a screen the rail has that this list does not is a screen a crawler, a printer and a reader with scripting off never hear about.

Two screens are deliberately missing, because they exist only for a project that declared something: flags, for an application with feature flags, and operations, for one with alerting or incidents. A server cannot know either -- they are wired at run time -- so printing a link to them on a project that has none would be printing a dead link. Their URLs still work on a project that has them, because the client is what knows.

pages is the mount itself: <mount> and <mount>/pages are the same screen, so the first address a person is given is not a special case.

Implementation

const List<DVStudioScreenSpec> dvStudioScreens = <DVStudioScreenSpec>[
  DVStudioScreenSpec(
    id: 'pages',
    label: 'Pages',
    summary:
        'Every page this application answers, and the canvas that draws '
        'one of them.',
  ),
  DVStudioScreenSpec(
    id: 'components',
    label: 'Components',
    summary:
        'Parts of a page designed once and put on any page of this '
        'application.',
  ),
  DVStudioScreenSpec(
    id: 'shortcuts',
    label: 'Shortcuts',
    summary: 'The keys this application answers, set without code.',
  ),
  DVStudioScreenSpec(
    id: 'models',
    label: 'Data',
    summary:
        'Every data model in this application, its fields, and its '
        'records.',
  ),
  DVStudioScreenSpec(
    id: 'routes',
    label: 'Site map',
    summary:
        'Every route this application answers, compiled from source and '
        'stored here.',
  ),
  DVStudioScreenSpec(
    id: 'frontend',
    label: 'Frontend',
    summary: 'The functions the pages of this application call.',
  ),
  DVStudioScreenSpec(
    id: 'functions',
    label: 'Backend',
    summary:
        'The functions this application answers for, and the steps each '
        'one runs.',
  ),
  DVStudioScreenSpec(
    id: 'modules',
    label: 'Modules',
    summary: 'The modules this application mounts, and what each one adds.',
  ),
  DVStudioScreenSpec(
    id: 'jobs',
    label: 'Tasks',
    summary:
        'The background tasks this application runs, and where each '
        'one is declared.',
  ),
  DVStudioScreenSpec(
    id: 'queues',
    label: 'Queue',
    summary: 'The queues those tasks run on.',
  ),
  DVStudioScreenSpec(
    id: 'cache',
    label: 'Cache',
    summary: 'What this application keeps in its cache, and for how long.',
  ),
  DVStudioScreenSpec(
    id: 'repository',
    label: 'GitHub',
    summary:
        "This application's studio folder, as a diff, a pull request or a "
        'push.',
  ),
  DVStudioScreenSpec(
    id: 'access',
    label: 'Team',
    summary: 'Who may open Studio for this application.',
  ),
];