@karmaniverous/jeeves
    Preparing search index...

    Interface Catalog<E>

    A validated, frozen endpoint catalog. Keeps each entry's literal name and schema types, so handlers and clients are keyed and typed by entry name.

    interface Catalog<E extends readonly CatalogEntry[] = readonly CatalogEntry[]> {
        entries: E;
        byName<N extends string>(
            name: N,
        ): [Extract<E[number], { name: N }>] extends [never]
            ? E[number]
            : Extract<E[number], { name: N }>;
    }

    Type Parameters

    Index
    entries: E

    The entries, in definition order.

    • Look up an entry by name.

      Type Parameters

      • N extends string

      Parameters

      • name: N

        Entry name.

      Returns [Extract<E[number], { name: N }>] extends [never]
          ? E[number]
          : Extract<E[number], { name: N }>

      The entry (typed by its literal name when names are literal).

      Error when no entry has that name.