IGPAPI
    Preparing search index...

    Interface ScreenLaunch<Id, Kind, Input, Data, State, E, R, Actions, Items, LaunchInput, BE, BR>

    What the platform's app process starts with: the first screen a logged-in launch shows, the launch edge's own facts — the navigation source and the ordinal skip — and the launch's burst. The screen is a definition of the platform's screen set, not an id: the entry opens it through the core launch edge (enterRoot) and checks that the runtime really has it.

    The burst is the ordered list of everything the app sends when it launches, written once in the declaration with its concurrency windows (Effect.all over the list, window after window), and carries one firstScreen mark (LaunchBurstMarks). screenInput turns the caller's launch input into the first screen's input, so facts of the launch — the screen's opening — are the declaration's, not the caller's.

    The brand keeps an arbitrary effect out of the declaration: only declareLaunch builds one. The declaration is the API of the platform packages (third-party platforms included): a platform installs its own and the entry reads it; declareLaunch is public for that reason. It is written by inference from declareLaunch(screen, via, …), never through a hand-written type — the parameters below carry the screen's data, actions and services and the burst's, and an annotation that names them by hand erases exactly what OpenApp hands back.

    interface ScreenLaunch<
        Id extends ScreenId,
        Kind extends EnterableScreenKind,
        Input,
        Data extends object,
        State,
        E,
        R,
        Actions extends object,
        Items extends object,
        LaunchInput,
        BE,
        BR,
    > {
        "[launchBrand]": true;
        burst: (
            marks: LaunchBurstMarks<
                LaunchInput,
                LaunchFirstScreenFailure<E, Items>,
                LaunchFirstScreenServices<R, Items>,
            >,
        ) => Effect<unknown, BE, BR>;
        screen: ScreenDefinition<
            Id,
            Kind,
            Input,
            Data,
            State,
            E,
            R,
            Actions,
            Items,
        >;
        screenInput: (input: LaunchInput) => Input;
        via: ScreenVia;
    }

    Type Parameters

    • Id extends ScreenId
    • Kind extends EnterableScreenKind
    • Input
    • Data extends object
    • State
    • E
    • R
    • Actions extends object
    • Items extends object
    • LaunchInput
    • BE
    • BR
    Index

    Properties

    "[launchBrand]": true
    burst: (
        marks: LaunchBurstMarks<
            LaunchInput,
            LaunchFirstScreenFailure<E, Items>,
            LaunchFirstScreenServices<R, Items>,
        >,
    ) => Effect<unknown, BE, BR>
    screenInput: (input: LaunchInput) => Input